簡體   English   中英

在循環中,重新定義全局變量還是重新聲明和重新定義局部變量會更好,還是沒有區別?

[英]In a loop, is it better to redefine a global variable or to redeclare and redefine a local variable over and over, or is there no difference?

例如:

for(var i = 1; i<100; i++){
  var inc = 1/i*PI;
  //and so forth
}

在任何方面都比這更好或更壞

var inc = 1/1*PI;
for(var i = 1; i<100; i++){
  inc = 1/i*PI;
}

當然,第一個更易於鍵入,但是當不斷地重新聲明相同的變量而不是將值重新分配給全局變量時,它可能會使程序失去速度/性能(即使是一點點)。 謝謝。

由於無var 吊裝 ,兩者之間絕對沒有區別。 根據文檔,由於這沒有區別,因此:

因此,建議始終在變量范圍的頂部(全局代碼的頂部和函數代碼的頂部)聲明變量,以便清楚哪些變量是函數范圍的(局部),哪些變量是在范圍鏈上解析的。

現在,如果您使用let而不是var ,故事將有所不同。 我認為根本不會有任何性能差異,但是在語義上肯定會有差異。 let的文檔詳細介紹了這些差異。

第二種方法是正確的。 您只應聲明一次變量。

我會像這樣編寫您的示例:

var i,inc = 1/1*PI;
for(i = 1; i<100; i++){
  inc = 1/i*PI;
}

這將所有變量聲明放在一個位置,這使得讀取代碼更加容易。

如果要使用塊級作用域,請使用let語句,如下所示:

var i;
for(i = 1; i<100; i++){
  let inc = 1/i*PI;
}

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/let

暫無
暫無

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

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