num1
f1();
console.log(c); // 9
console.log(b); // 9
console.log(a); // 报错,a找不到
function f1() {
var a = b = c = 9;
console.log(a); // 9
console.log(b); // 9
console.log(c); // 9
}
预解析时,f1函数自动提前。同时函数体里的var a;也自动提前
成为了局部变量。b、c成为了隐式全局变量
num2
var foo = function () {
console.log(2)
}
function foo() {
console.log(1)
}
foo(); // 2
四哥说过,声明的变量和第二种函数声明的foo类型的,会提前预解析,所以console.log(2)
后来居上,把1弄死了。