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弄死了。