的B/W函數聲明&函數式var functionName = function() {} vs function functionName() {}
精美描述在此它提到在分析時該函數聲明被評估的差別,&功能表達在執行相函數聲明比函數表達式快嗎?
評價在bytes.com它的提到函數聲明比函數表達式快。
我創建了這一個基本的測試案例:http://jsperf.com/function-declaration-vs-function-expression
函數聲明:
function myfunc() {
alert("yo");
}
myfunc();
函數表達式:
var myfunc = function() {
alert("yo");
}
myfunc();
試驗表明,函數表達式是慢90%韓函數聲明。
爲什麼這樣的速度差異?
編輯:
從結果中http://jsperf.com/function-declaration-vs-function-expression
在Chrome, IE9, Opera & Safari
- >函數聲明比函數表達式更快
在Firefox, IE7, IE8
- >函數表達式比函數聲明更快
在IE9函數聲明更快,而在IE 7中& 8函數表達式更快。 是因爲IE9中JavaScript引擎的變化,還是此舉有意?
你使用什麼瀏覽器或JavaScript引擎? – 2011-03-25 14:37:22
它實際上在Firefox中更快。 – 2011-03-25 14:38:58
這些結果是非常有趣的,而在Chrome和Opera中它的速度卻慢了90%,實際上它在FF中速度更快。我會說,這並不重要,因爲如果你聲明瞭足夠的功能,這會成爲一個問題,那麼你做錯了什麼。 – idbentley 2011-03-25 14:40:27