【发布时间】:2015-01-01 09:45:54
【问题描述】:
我想知道 javascript 提升如何对全局变量起作用。
假设我有以下代码 sn-p:
var a = 5;
function print(){
console.warn("a",a,b);
var a = 10;
b=5;
console.warn("a",a);
}
print();
在这种情况下,我收到错误“b 未定义”。我想知道为什么 Javascript 提升不适用于全局变量。我试图寻找这个,但只得到变量提升的结果。有什么想法吗??
【问题讨论】:
-
基本上:
b=5;不会被提升。只有var语句可以。 -
所以当我说 b=5 的时候,它有一个全局作用域,那么为什么不取自全局作用域呢。
-
非常感谢,我学到了关于 JavaScript 的新知识 :-) 我也看过这个:w3schools.com/js/js_hoisting.asp
标签: javascript global-variables scope hoisting