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

Другие вопросы по тегам