簡體   English   中英

在JavaScript中聲明或不聲明局部變量

[英]To declare or not local variables in JavaScript

哪種更好的寫foo()
foo1()foo2()嗎?
在以下方面更好:

  1. 性能
  2. 內存消耗
  3. 變量/對象熵

假設其他因素得到了照顧。
例如:該變量未在函數中的多個位置使用,等等。

        function f1() {
            return 10;
        }

        function f2() {
            return 20;
        }

        function foo1() {
            return f1() === f2();
        }

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

它實際上取決於。

foo1() -如果只需要在函數中使用f1()f2() ,則foo1()會更好。 由於使用其他變量來保持相同的結果沒有任何意義,而且它們將覆蓋一些內存(非常小)。 因此,可以直接使用函數來消除此額外成本。

foo2() -如果在函數中多次使用f1()f2() ,則foo2()會更好,因為將函數值存儲在一個變量中並多次使用將比再次調用Function更好,再次獲得相同結果。 但是可以,如果您的函數包含邏輯並且函數的結果可以隨時更改,那么顯然您將需要每次調用函數。

我不是這方面的專家,但我會盡力而為。

為了提高性能,如評論中所述,您可以使用jsPerf ..

對於內存消耗,我相信foo1()更好,因為您不需要創建新變量。

對於變量熵,我不確定如何回答這一點,因為我相信您實際上並不需要那些變量。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM