你們都知道js 分爲詞法階段 和執行階段函數
也知道它是由於var變量和函數聲明會提高測試
可是你知道他們兩個誰先提高的嗎spa
測試一下code
function test(){
alert(4);
}
var test;
console.log(test);
//輸出了 test這個函數體blog
//奧 原來 是函數提高 先於變量提高io
//由於聲明同名變量的時候是不會覆蓋以前的聲明的 只有賦值的時候纔會被覆蓋console
//若是test提高先於函數 那麼就會輸出undefinedfunction
//由此你明白了吧 函數聲明先於變量聲明!!!class
若是這樣 測試 無論誰提高在前 都會輸出test 由於提高在前 賦值在後 賦值會覆蓋以前的聲明!!!test
接下來稍微改一下就知道誰聲明在前了