为什么外面的全局变量var值不变为true呢?谢谢!
var value = 0;
function f() {
if (1) {
value = true;
} else {
var value = false;
}
alert( value );
}
f();
为什么外面的全局变量var值不变为true呢?谢谢!
var value = 0;
function f() {
if (1) {
value = true;
} else {
var value = false;
}
alert( value );
}
f();
总之,JS中有变量提升这么神奇的东西。JavaScript解释器总是不知不觉地将函数和变量的声明移动(提升)到作用域的开头。
编码
实际上是这样解释的:
在您的情况下,会发生同样的事情,其中一个变量的范围
value是一个函数,因此会发生与局部变量一起使用的情况。有一些关于该主题的信息https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Grammar_and_types
和
JavaScript 和“提升”变量和函数声明