第三題,js預解析

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章