一 .所有全局变量都是window的属性
例如:
var a=1 等价于 window.a=1
可以检测全局变量是否声明方式是: alert("a" in window)
二.所有变量声明都在范围作用域的顶部
例如:
alert("a" in window);
var a;
就好比
var a;
alert("a" in window);
三.变量声明可以在作用域的顶部,但是变量赋值没有
例如:
alert(a);
var a=1; 结果是undefined
而
var a=1;
alert(a); 结果是 1
如题目 :
if(!("a" in window))
{
var a=1; //声明的变量都是在window 作用范围内 而所以的变量声明不管在什么位置最后预编译的时候 变量声明都会在作用域的顶部
}
alert(a)
等价于
var a;
if(!("a" in window))
{
a=1;
}
alert(a); //最后的结果是undefined