Javascript:var functionName = function(){} vs function functionName(){}的性能

use*_*273 9 javascript

可能重复:
使用匿名函数会影响性能吗?

在Javascript中使用函数表达式与声明时,解析和运行时的性能影响(如果有)是什么?

例如,以下两种方式的性能特征和差异是什么:

var functionOne = function() {
    // Some code
}
Run Code Online (Sandbox Code Playgroud)

要么:

function functionTwo() {
    // Some code
}
Run Code Online (Sandbox Code Playgroud)

注意:问题不在于声明函数是否更快,而是函数执行.

Poi*_*nty 13

比性能差异更重要的是这两者之间的语义差异.

  • 使用函数声明语句声明的函数(第二个示例)具有将在堆栈跟踪等中显示的名称.
  • 在函数运行中的任何其他语句之前,函数声明语句被"提升"到它们块的顶部并被解释为它们实际出现在那里.

至少在现代运行时环境中,性能差异可能非常小,甚至可以检测到.

  • 我知道语义上的差异更为重要,但是我确实想知道是否会对性能产生影响。这是否意味着javascript中的内存管理,分配等将是相同的,而不管如何声明函数? (2认同)

Amj*_*sad 10

这是一个JSPerf链接,尝试在多个浏览器上进行测试,因为结果往往会有所不同.在chrome 10中,函数语句得分更高. http://jsperf.com/fn-expression-vs-statement