在Javascript中调用函数的成本与否

Ric*_*ard 17 javascript function

相比:

if (myVariable) {
    doSomething()
}

function doSomething ()
{
    // Work goes here
}
Run Code Online (Sandbox Code Playgroud)

VS

doSomething();

function doSomething()
{
    if (myVariable) {
        // Work goes here
    }
}
Run Code Online (Sandbox Code Playgroud)

即我的问题是,在函数外部进行检查是否更快,并避免上下文切换(我认为这是正确的术语))或者只是在函数内部进行,因为它会产生如此微小的差异?

干杯.

spr*_*aff 13

它只是无关紧要(虽然第一种方法避免了一些工作,所以它应该更快,但其数量可能小于统计噪声).

真正重要的是哪种方法最能代表逻辑.经验法则是函数中的每个语句都应该处于相同的抽象级别.条件表达式是否比函数调用更抽象或更抽象?

  • 如果您每秒处理数百万个请求,那么这不是您的瓶颈。正确的答案是“遵循最佳设计规则,而不是最佳优化规则”。 (3认同)
  • 我理解并同意你的观点,这无关紧要.但是这个问题有一个正确的答案,"这无所谓"并不是正确的答案.我希望你的答案清楚地说明正确答案,并将"无关紧要"作为事后的想法.这真的没有在的情况下,99.99%无所谓,但如果你碰巧要努力创造能够处理每秒数百万请求的节点的网络服务器,它可能会重要到一定程度. (2认同)