27
2020
07

下面的代码会在 console 输出神马?为什么?

(function(){

  var a = b = 3;

})();


console.log("a defined? " + (typeof a !== 'undefined'));   

console.log("b defined? " + (typeof b !== 'undefined'));

这跟变量作用域有关,输出换成下面的:


console.log(b); //3

console,log(typeof a); //undefined

拆解一下自执行函数中的变量赋值:


b = 3;

var a = b;

所以 b 成了全局变量,而 a 是自执行函数的一个局部变量。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。