小编Zen*_*art的帖子

为什么块赋值会改变全局变量?

var a = 0;
if (true) {
  console.log(a)
  a = 1;

  function a() {}
  a = 21
  console.log(a)
}
console.log(a)
Run Code Online (Sandbox Code Playgroud)

在我看来,因为函数声明提升,a = 1以及 a = 21会改变局部函数变量,所以在块中会输出21,外面是0,但真正的结果是在输出1之外。

用chrome调试,结果是这样

当运行时function a() {},它会改变局部和全局变量。太奇怪了?谁能给我解释一下?

javascript

17
推荐指数
1
解决办法
962
查看次数

标签 统计

javascript ×1