命名多个迭代计数器的良好实践



我的问题是关于在不同函数中命名多个迭代计数器的一般良好实践。假设我有 3 个不同的函数,每个函数都有for循环。在第一个我使用了for(var i=0; i<5; i++)所有其他函数也保持类似的for循环。我应该在每个函数末尾的每个循环后将i计数器更改为0,还是在每个函数的每个for循环中声明 3 个不同的变量作为迭代计数器?

我有 3 个不同的函数

如果它是三个不同的函数,并且你声明你的循环for (vari = 0),那么每个函数的i都不同。在这种情况下,var在函数范围内声明变量(参见 MDN)。所以,i 是一个非常好的名字(大多数情况下,我看到嵌套循环(*)的ijk),不需要区分。

但是:如果没有var,如果您不处于严格模式,我将具有全局范围。

作为旁注:从今天(ES6)开始,如果我不在循环外使用,我更喜欢使用for (leti = 0...),因为在这种情况下,的作用域是循环(MDN)。


(*) 即使需要三个嵌套循环,也可能有问题。

除非每个函数内部的交互以某种方式相关,否则无论名称如何,都应单独声明它们。

此外,除非您使用全局字段来i每个代码块i变量无论如何都只在本地范围内,因此无需重置任何内容。

基本上,我不会在全局范围内共享任何用于迭代的变量,如果合适,我会将此循环功能移动到它自己的作用域函数中。

最新更新