命名多个迭代计数器的良好做法

Good pratice for naming multiple iteration counters

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

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

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

基本上,我不会专门在全局范围内共享任何用于迭代的变量,如果合适的话,我会把这个循环功能移到它自己的范围函数中。

I have 3 different functions

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

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

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


(*) 尽管,如果需要三个嵌套循环,可能会出问题。