var a=1;
function f(){
a=2;
}
f();
console.log(a); //a=2;
function f(){
var a=1;
if(a){
a=2;
}
}
f();
console.log(a); //undefined
function foo() {
var x = 1;
if (x) {
(function () {
var x = 2;
}());
}
console.log(x);// 为啥x还是=1
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
先不说楼上那个问题。
来咱们把你的第三段代码改一下,
而在f()中对全局变量重新赋值不会影响到全局作用域。 楼主,你说的这句话是错的,在函数作用域中对全局变量重新赋值是会影响到全局作用域的。所以你给出的第一个例子的输出的a=1这个答案是错的,正确输出是a=2。