话不多说 直接上题目
f1();
console.log(c);
console.log(b);
console.log(a);
function f1() {
var a = b = c = 9;
console.log(a);
console.log(b);
console.log(c);
}
问:在控制台输出的结果
答案:9 9 9 9 9 报错:a is not defined
本题涉及预解析 变量作用域
其中关键理解var a=b=c=9
其相当于 var a=9; b=9; c=9;
预解析 将函数体提前了 其次a变量是局部变量 b、c变量只有赋值 没有定义 是第二种全局变量 因此在函数外部的console.log中只有c b 但是a是局部变量 因此在外部没有赋值并且没有定义 所以报错了