關於js的變數提升問題
阿新 • • 發佈:2019-01-01
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(){} //變數會提升