作用域 变量值受到影响

var a = b = 10;

(function(){

var a=b=20

})();

console.log(b); // 20

阅读 2.2k
2 个回答

你写的var a = b = 20;并不等于 var a =20;var b = 20 ; 这个b是全局变量 覆盖了闭包外的b

这不是闭包, 就是一个函数作用域和全局作用域.

还有, 你知道 var a=b=20这个吗? 这并不是定义两个局部变量, 而是一个赋值给b, 一个定义变量a. 所以赋值更改的是全局变量的值, 定义局部变量为a与全局的a没有关系.

定义多个变量的语法是 var a, b 中间要有 逗号.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题