文章目录
var
var 声明的变量会被预解析提升到该变量作用域的最前面,但是赋值不会提升。
例:会打印什么?
function f1() {
var a = b = c = 9;
console.log(a);
console.log(b);
console.log(c);
}
f1();
console.log(c);
console.log(b);
console.log(a);
答案:
9 //f1() a
9 //b
9 //c
9 //c
9 //b
error: a is not define
题目代码相当于:
function f1() {
var a;
a = b = c = 9; //b 和 c 没有 var 关键字被当作全局变量
console.log(a); //9
console.log(b); //9
console.log(c); //9
}
f1();
console.log(c); //9
console.log(b); //9
console.log(a); //error