返回一个值比返回一个局部变量更好吗?

时间:2017-03-25 12:40:51

标签: javascript optimization

我知道在这种情况下标题不是一个很好的描述符,但我不知道如何更好地说出来。

我知道这两个函数完全相同:

function A(a, b)   {
    return a * b;
}

function B(a, b)    {
    var c = a * b;
    return c;
}

我的问题是A()是否比B()更优?

我的逻辑是A()更好,因为结果是直接返回而不是存储变量然后返回它,这意味着1)代码中涉及的步骤较少,2)没有存储任何内容(甚至如果只是暂时的)在记忆中。

我在JavaScript中运行了一些测试,这些是我的结果:

Test One

Test Two

虽然这些结果表明A()可能稍快一点,但我仍然不确定,因为它可能只是在我的电脑中。

1 个答案:

答案 0 :(得分:0)

正如许多人在这个问题的评论中所说的那样,答案是差异可以忽略不计,其中一个并不比另一个更优,因为:

1)要确定哪种功能更优化,需要进行大量试验。如果这样做,可以看出差异几乎可以忽略不计。

2)正如 JJJ 提到的那样,可能是由于每种语言的引擎或编译器所做的优化。

3)根据操作系统和浏览器的不同,一个功能比另一个功能更快。