我一直想知道为什么我们在Javascript循环中使用i
不能是任何字母吗?只是想知道为什么i
似乎是默认值。
for (i = 0; i < 5; i++) {
text += "The number is " + i + "<br>";
}
答案 0 :(得分:3)
循环中通常使用几种变量名称:
i
可能是最常见的,因为它只有一个字母,代表index
。
您的代码示例应定义 i
,如下所示:
for (let i = 0; i < 5; i++) {
text += "The number is " + i + "<br>";
}
否则,它是在全局范围内创建的,只是不应该发生的。
答案 1 :(得分:2)
这是来自Fortran which originally made all variables beginning with i
, j
, ... n
implicitly integer (a convention common to mathematical notation as well, at least for i
, j
and k
), and all other names (a
-h
, o
-z
) implicitly real的历史文物。许多代码最终都借用了该约定来表示一次性整数变量名称,将i
用于外部循环,将j
用于下一个循环,依此类推。
并没有真正的押韵或原因(除了i
经常被用来表示“索引”或“整数”),只是一个常见的约定。约定可以使用i
(因为我们都知道您的意思);如果您不使用它,则可能需要一个拼写的名称,而不是其他无法描述变量代表什么的随机单字母名称。
答案 2 :(得分:1)
没有任何理由-这只是一个命名约定,它表示索引(字母i
)或循环计数器(迭代)。您可以使用任何喜欢的变量名:
let text = "";
for (anExtremelyLongCounterName = 0; anExtremelyLongCounterName < 5; anExtremelyLongCounterName++) {
text += "The number is " + anExtremelyLongCounterName + "<br>";
}
document.write(text);
还要注意,当前您的代码隐式声明了一个全局变量。使用let
或var
使它变得更好。
答案 3 :(得分:0)
您可以为此使用任何字母或任何有效的变量名。当我第一次学习编程时,老师指示我们将lcv
用于循环控制变量。
无论如何回答您的原始问题,i
在大多数具有类似for
循环结构的语言中通常用于控制循环迭代,我相信它是从单词的第一个字母衍生而来的增加。然后按照约定,如果您有嵌套循环,则下一个循环控制变量将是字母i
之后的字母:j
,然后是k
,等等。
但是,正如我之前提到的,它可以是您选择的任何变量名称。但是谁愿意为抛弃型变量做那么多的输入呢?