关于什么样的变量归window所有

Posted shiyuzuxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于什么样的变量归window所有相关的知识,希望对你有一定的参考价值。

对于什么样的变量归window所有,两句话:

全局变量归window所有

未经声明便使用的变量归window所有

 

例子:

1.

function Foo() {
a = 6;
console.log(a);        //6       虽说a不在Foo的AO里,但ao里没有a,foo会向他父级索取
console.log(window.a);//6  a未经声明便赋值归window所有
}
Foo();

2.

function Foo() {
i=0;
var i=9;

console.log(i); //9

console.log(window.i);//undefined
}
Foo();

咋一看,window.i不是应该输出0吗,i=0呀,未经声明归window所有。但要怪就怪函数体里面有个var i 吧。

原因:

函数在执行时(Foo()),会建立一个活动对象,里面有一些属性。

{

形参:值

var 声明的变量:值

函数声明: 值

}

这个ao一开始的时候属性挂的值都是undefined,后来随着函数的执行,这些属性上也开始挂值。

争对本题:

开始:ao{i:undefined} --->ao{i:0}---->ao{i:9}--->console.log(i)//9

这样看i并没有挂到window上,当然如果函数里面没有i的声明,这个i便属于window










以上是关于关于什么样的变量归window所有的主要内容,如果未能解决你的问题,请参考以下文章

javaScript预编译

JS预编译及相关练习

BOM学习

BOM学习

关于Windows Xp 用户变量和系统变量问题

浏览器对象模型“BOM”-- window对象