1. 程式人生 > >一道面試題的分析

一道面試題的分析

com var 沒有 優先級 alt 面試題 http console 圖片

題目:

console.log(a);
var a=1;
console.log(a);
function a(){console.log(2);}
console.log(a);
var a=3;
console.log(a);
function a(){console.log(4);}
console.log(a);
a();

運行結果:

技術分享圖片

分析:

題目中有多個變量聲明和函數聲明,都會提升,而函數的優先級高於變量,兩個函數聲明,後面的高於前面的,所以第一個a是

f a(){console.log(4)}

var a = 1,執行到此,a被賦值為1,第二,第三個a都是1,中間的函數聲明已經提升過,在此處不會再執行,沒有任何影響。

var a = 3,同理,後面的第四,第五個a都是3。

由於a被賦值為3,第六個a(),已經無法執行,報錯,a不是函數

一道面試題的分析