1. 程式人生 > >關於js的變數提升問題

關於js的變數提升問題

1.關於變數提升;

例子一:console.log(a) //undifined;

var a=0;

例子二:

console.log(a)  //undifined;

if(true){

  var a=0;

}

console.log(a)  //0;

例子三:

console.log(a) //undifined;

if(!true){

  var a=0;

}

console.log(a) //undifined;

以上;只要js中聲明瞭變數,不管什麼條件,都會自動提升到程式碼最開始的位置;

迷惑煙霧彈

if(!("a" in window)){

  var a=0

}

console.log(a)//undifined;  第一還是變數提升;第二(“a” in window)為“true”

-------------------------------------------分割線----------------------------------------------------------------------

2.函式提升

console.log(f1) //function f1(){}

console.log(f2) //undifined;

function f1(){}  //函式會提升到檔案最開始的位置

var f2=function(){} //變數會提升