在循环中,是重新定义全局变量更好,还是一遍又一遍地重新声明和重新定义局部变量更好,还是没有区别



例如:

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/en-US/docs/Web/JavaScript/Reference/Statements/let

相关内容

  • 没有找到相关文章