var init = function() { }; 是函數(shù)表達(dá)式,函數(shù)在代碼執(zhí)行的到當(dāng)前行的時(shí)候才被執(zhí)行,init 才被賦值。function init() {} 是函數(shù)聲明,和 var 一樣,會(huì)被提前到代碼最前面定義。
1).以函數(shù)聲明的方法定義的函數(shù),函數(shù)名是必須的,而函數(shù)表達(dá)式的函數(shù)名是可選的。(函數(shù)聲明整體味被提升到當(dāng)前作用域的頂部,函數(shù)表達(dá)式也提升到頂部但是惟獨(dú)其變量名提升)
2).以函數(shù)聲明的方法定義的函數(shù),函數(shù)可以在函數(shù)聲明之前調(diào)用,而函數(shù)表達(dá)式的函數(shù)只能在聲明之后調(diào)用。
3).以函數(shù)聲明的方法定義的函數(shù)并不是真正的聲明,它們僅僅可以浮現(xiàn)在全局中,或者嵌套在其他的函數(shù)中,但是它們不能浮現(xiàn)在循環(huán),條件或者try/catch/finally中,而函數(shù)表達(dá)式可以在任何地方聲明。
換句話說(shuō),函數(shù)聲明不是一個(gè)完整的語(yǔ)句,所以不能浮現(xiàn)在if-else,for循環(huán),finally,try catch語(yǔ)句以及with語(yǔ)句中。
來(lái)源:高三網(wǎng)
能發(fā)現(xiàn)自己知識(shí)上的薄弱環(huán)節(jié),在上課前補(bǔ)上這部分的知識(shí),不使它成為聽(tīng)課時(shí)的“絆腳石”。這樣,就會(huì)順利理解新知識(shí),相信通過(guò)函數(shù)聲明和函數(shù)表達(dá)式的區(qū)別這篇文章能幫到你,在和好朋友分享的時(shí)候,也歡迎感興趣小伙伴們一起來(lái)探討。