// 说出 a, b 的值
(function() {
var a = b = 5;
})();
console.log(a, b);
答案是:undefined 5
- 有一个容易混淆的点
var a = b = 5
不在考察范围内,因此做调整,调整如下;
// 说出 a, b 的值
(function func() {
var a;
a = b;
b = 5;
})();
console.log(a, b);
-
题目包含全局作用域和func的局部作用域,a通过var在func中声明,在func中操作仅作用于局部作用域;
-
b在func局部作用域中未找到变量,在全局作用域中找,因此func中的修改针对全局作用域;
-
因此最终输出的是 undefined 5;