在JavaScript中声明或不声明局部变量

时间:2015-06-03 05:13:31

标签: javascript

哪种写作方式更好foo()foo1()foo2()
更好的方面:

  1. 性能
  2. 内存消耗
  3. 变量/对象熵
  4. 假设有其他因素需要处理 例如:变量未在函数中的多个位置使用,等等。

            function f1() {
                return 10;
            }
    
            function f2() {
                return 20;
            }
    
            function foo1() {
                return f1() === f2();
            }
    
            function foo2() {
                var i = f1();
                var j = f2();
                return i === j;
            }
    

2 个答案:

答案 0 :(得分:0)

它实际上取决于。

foo1() - 如果你需要在函数中只使用f1()f2(),那么foo1()会更好。使用额外的变量来保持相同的结果没有任何意义,它们也会覆盖一些内存(非常小的数量)。因此,通过直接使用函数可以消除这种额外成本。

foo2() - 如果您在函数中多次使用f1()f2(),则foo2()会更好,因为将函数值存储在ONE变量中并使用它很多次会比一次又一次地调用Function要好得多。 但是,是的,如果你的函数包含逻辑,函数的结果可以随时改变,那么很明显你每次都需要调用函数。

答案 1 :(得分:0)

我不是这方面的专家,但我会尽我所能..

对于效果,如评论中所述,您可以使用jsPerf ..

对于内存消耗,我相信foo1()更好,因为您不需要创建新变量..

对于变量熵,我不知道如何回答这一点,因为我相信你并不真的需要这些变量。

希望它有所帮助。