Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在For循环变量上下文中使用不同的字母-Javascript_Javascript_For Loop_Variables - Fatal编程技术网

在For循环变量上下文中使用不同的字母-Javascript

在For循环变量上下文中使用不同的字母-Javascript,javascript,for-loop,variables,Javascript,For Loop,Variables,我在一个文档中有一些for循环,它们用法的简化示例如下: for (var i=0; i < element.length; i++) { element[i]; } for(变量i=0;i

我在一个文档中有一些
for循环
,它们用法的简化示例如下:

for (var i=0; i < element.length; i++) {
   element[i];
}
for(变量i=0;i
我在某个地方读到,最好对不同的循环实例使用不同的变量名,即,不要使用
I
use
j
等等

因为我在脚本中有很多循环,所以当我读东西的时候,用不同的字母读起来就困难多了

如果变量在括号内,是否仍可以对所有变量使用
i
?我没有任何名为
I
的全局变量

我不能使用
let
,因为我的老板想把它保留在
var
上,而不使用巴贝尔等

提前谢谢你的建议


Em

如果没有嵌套,您可以对不同的循环使用相同的变量,这是完全正常的,因为您的循环将同步执行,即一个接一个,因此它们之间不会有冲突。

如果没有嵌套,您可以对不同的循环使用相同的变量,这是完全正常的,因为您的循环将同步执行,即一个接一个地执行,因此它们之间不会有冲突。

如果使用var,变量将不会在本地范围内。因此,根据您初始化for的方式,您可能会遇到麻烦。但是如果我可以退后一步…… 如果您在同一个文件中执行多个for循环,我们是否违反了DRY原则(不要重复您自己)?我们有没有办法使用像forEach或map这样的内置函数?或者我们可以将这些循环所做的事情抽象到我们自己的自定义函数中吗

我认为这将是有益的探索。但简单的回答是,根据在for循环中如何初始化i变量,您可能会遇到问题

干净的代码很重要。它让我们的生活更轻松


希望有帮助

如果使用var,变量的作用域将不在本地。因此,根据如何初始化for,您可能会遇到麻烦。但是如果我可以退后一步…… 如果您在同一个文件中执行多个for循环,我们是否违反了DRY原则(不要重复您自己)?我们有没有办法使用像forEach或map这样的内置函数?或者我们可以将这些循环所做的事情抽象到我们自己的自定义函数中吗

我认为这将是有益的探索。但简单的回答是,根据在for循环中如何初始化i变量,您可能会遇到问题

干净的代码很重要。它让我们的生活更轻松


希望有帮助

如果要循环数组,请使用
.map
而不是
forEach

阅读一篇关于我为什么推荐此方法的文章

如果您是循环数组,请使用
.map
而不是
forEach

阅读一篇文章,说明我为什么推荐这个

我不能使用let,因为我的老板想把它保留在var,而不使用babel等等。
这没有任何意义。您真的应该在以后使用ES6+和transpile(并使用单独的变量),这使编码变得更加容易。@当然性能有时作为babel、webpack、,polyfills等正在显著增加捆绑大小,这对于移动设备经常使用的应用程序来说是不可能的。嵌套循环时使用不同的字母。如果在同一缩进中有300个循环,那么应该在所有循环中使用“i”
我不能使用let,因为我的老板想将其保留在var中,而不使用babel等。
这没有任何意义。您真的应该在以后使用ES6+和transpile(并使用单独的变量),这使编码变得更加容易。@当然性能有时作为babel、webpack、,polyfills等正在显著增加捆绑大小,这对于移动设备经常使用的应用程序来说是不可能的。嵌套循环时使用不同的字母。如果在同一缩进中有300个循环,那么应该在所有循环中使用“i”。作者说他不能使用ES6功能。forEach是2011年发布的Ecmascript 5.1规范的一部分。因此,它的兼容性在所有没有Babel的浏览器中都很常见。必须检查map,但实际上它是在之前的小版本(5.0)中引入的。它甚至在IE9中得到支持。您可能会将这些功能与在ES6中发现的较新版本中对forEach进行的优化以及ES6中引入的映射数据结构相混淆。阅读这两方面的内容会很有用。干杯。作者说他不能使用ES6特性。forEach是2011年发布的Ecmascript 5.1规范的一部分。因此,它的兼容性在所有没有Babel的浏览器中都很常见。必须检查map,但实际上它是在之前的小版本(5.0)中引入的。它甚至在IE9中得到支持。您可能会将这些功能与在ES6中发现的较新版本中对forEach进行的优化以及ES6中引入的映射数据结构相混淆。阅读这两方面的内容会很有用。干杯,谢谢@EugeneTsakh谢谢@EugeneTsakh