Объявление ч / б разницы функций и выражение функции прекрасно описаны в var functionName = 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
In Chrome, IE9, Opera & Safari
-> Объявление функции быстрее, чем выражение функции
В Firefox, IE7, IE8
-> Выражение функции быстрее, чем объявление функции
In IE9 FuОбъявление nction быстрее, тогда как в IE 7 и 8 выражение функции быстрее. Это из-за изменений в движке JavaScript в IE9, или этот шаг был преднамеренным?