在書(shū)籍《你不知道的JavaScript》(上卷)中寫(xiě)道:
"函數(shù)會(huì)首先被提升媒鼓,然后才是變量"
請(qǐng)看以下demo:
console.log(fn);
function fn(){
console.log("函數(shù)聲明");
}
var fn="變量";
執(zhí)行上面demo挎塌,輸出結(jié)果為:
function fn(){
console.log("函數(shù)聲明")认烁;
}
出現(xiàn)這種結(jié)果的原因是執(zhí)行順序?yàn)椋?/p>
function fn(){
console.log("函數(shù)聲明")服傍;
}
var fn;
console.log(fn);
fn="變量"
函數(shù)提升優(yōu)先級(jí)比變量提升要高延都,且不會(huì)被變量聲明所覆蓋蒸甜,但是會(huì)被變量賦值覆蓋棠耕。如果在最后再加上打印就能看到函數(shù)已經(jīng)被覆蓋。
console.log(fn);//打印出依舊是函數(shù)
function fn(){
console.log("函數(shù)聲明");
}
var fn="變量";
console.log(fn);//"變量"
如果大家覺(jué)得該篇文章還不錯(cuò)柠新,就給個(gè)小小心窍荧,謝謝!:拊鳌蕊退!