Javascript: производительность var functionName = function() {} против функции functionName() {}
Возможный дубликат:
Влияет ли использование анонимных функций на производительность?
Каковы последствия производительности (если таковые имеются) на синтаксический анализ и во время выполнения при использовании выражения функции против объявления в Javascript?
Например, каковы характеристики производительности и различия следующих двух способов:
var functionOne = function() {
// Some code
}
или же:
function functionTwo() {
// Some code
}
ПРИМЕЧАНИЕ. Вопрос не в том, быстрее ли объявлять функцию, а в том, как она выполняется.
2 ответа
Гораздо важнее, чем различия в производительности, являются семантические различия между этими двумя.
- Функция, объявленная с помощью оператора объявления функции (второй пример), имеет имя, которое будет отображаться в следах стека и т. Д.
- Операторы объявления функции "поднимаются" наверх их блоков и интерпретируются так, как если бы они действительно появлялись там, до запуска любых других операторов в функции.
Различия в производительности, вероятно, довольно незначительны, если даже обнаруживаются, по крайней мере, в современных средах выполнения.
Вот ссылка JSPerf, попробуйте протестировать на нескольких браузерах, потому что результаты, как правило, различаются. В Chrome 10 оценка функции получила лучший результат. http://jsperf.com/fn-expression-vs-statement