命名多个迭代计数器的良好做法
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 (
var
i = 0)
,它将是一个不同的 i 每一个。在这种情况下,var
在函数范围内声明变量 (see MDN)。所以,i 是一个非常好的名字(大多数情况下,我看到 i、j 和 k 用于嵌套循环 (*)) 并且不需要区分。
但是:如果没有 var
,如果您不处于严格模式,i 将具有全局范围。
作为旁注:截至今天(ES6),我更喜欢使用 for (
let
i = 0...
),如果 i 不在循环外使用,因为在那种情况下 i 的作用域是循环 (MDN).
(*) 尽管,如果需要三个嵌套循环,可能会出问题。
我的问题是关于在不同函数中命名多个迭代计数器的一般良好做法。假设我有 3 个不同的函数,每个函数都有 for
循环。在第一个中,我使用了 for(var i=0; i<5; i++)
所有其他函数也有类似的 for
循环。我应该在每个函数结束时的每个循环之后将 i
计数器更改为 0
还是在每个函数内的每个 for
循环中声明 3 个不同的变量作为迭代计数器?
除非每个函数内部的交互以某种方式相关,否则它们应该单独声明,无论名称如何。
此外,除非您为 i
使用全局字段,否则每个代码块 i
变量无论如何都仅在本地范围内,因此无需重置任何内容。
基本上,我不会专门在全局范围内共享任何用于迭代的变量,如果合适的话,我会把这个循环功能移到它自己的范围函数中。
I have 3 different functions
如果它是三个不同的函数,并且你声明你的循环 for (
var
i = 0)
,它将是一个不同的 i 每一个。在这种情况下,var
在函数范围内声明变量 (see MDN)。所以,i 是一个非常好的名字(大多数情况下,我看到 i、j 和 k 用于嵌套循环 (*)) 并且不需要区分。
但是:如果没有 var
,如果您不处于严格模式,i 将具有全局范围。
作为旁注:截至今天(ES6),我更喜欢使用 for (
let
i = 0...
),如果 i 不在循环外使用,因为在那种情况下 i 的作用域是循环 (MDN).
(*) 尽管,如果需要三个嵌套循环,可能会出问题。