(function() {
var a = b = 5;
})();
console.log(b);
console.log(a);
输出: 5 ReferenceError: a is not defined
考点1:
var a = b = 5;
可分解成:var a = b; b = 5;
由于 b = 5,前面没有 var ,所以 b 为全局变量。而 a 为局部变量。
因此以上代码可写成:
var b;
(function() {
var a = b; b = 5;
})();
console.log(b);
console.log(a);
考点2:
由于 a 是函数的局部变量,在函数结束时就销毁了。所以,报错。