JavaScript没有块级作用域.在其他语言上,比如C语言中,有花括号封闭的代码块都有自己的作用域,(如果用ECMAScript的话来讲,就是他们自己的执行环境),因而支持根据条件来定义变量.例如,下面的代码效果 if (true) { var color = "blue"; } alert(color);//blue 这里是一个if语句中定义了一个变量color,如果是在C,C++或者Java中,color会在if执行后被销毁.但是在JavaScript中,if语句中的变量声明会…
在函数(方法)中声明的所有变量,他们在整个函数中都有定义 var scope="abc"; function f() { alert(scope); //显示undefine var scope="local"; alert(scope); //显示local } 原因:由于作用域规则的限制,输出的并不是abc.由于局部变量在真个函数体内都是有定义的,这就意味这在真个函数题中都隐藏了同名的全局变量 上面的例子和下面的效果相同: function f() { var…