Gir*_*oft 4 javascript scope global-variables local-variables
foo = "foobar";
var bar = function(){
var foo = foo || "";
return foo;
}
bar();`
Run Code Online (Sandbox Code Playgroud)
此代码为结果提供空字符串.为什么JS不能重新分配与全局变量同名的局部变量?在其他编程语言中,预期的结果当然是"foobar",为什么JS表现得那样?
Wla*_*ant 25
那是因为你声明了一个具有相同名称的局部变量 - 它掩盖了全局变量.所以当你写作时foo
,请参考局部变量.即使您在声明该局部变量之前编写它也是如此,JavaScript中的变量是函数范围的.但是,您可以使用全局变量是全局对象(window
)的属性这一事实:
var foo = window.foo || "";
Run Code Online (Sandbox Code Playgroud)
window.foo
这里指的是全局变量.
归档时间: |
|
查看次数: |
3632 次 |
最近记录: |