javascript - 为什么这个简单的 for 循环没有按预期工作?

标签 javascript loops

人们可能希望以下内容打印出 abc

var i, rowName;
for (i = 0; i < 3; i++, rowName = ['a', 'b', 'c'][i]) {
    console.log(rowName);
}

相反,它打印出undefinedbc。为什么?

澄清一下:我知道如何完成这项工作;我很好奇的是为什么上面的方法不起作用。

最佳答案

它打印 undefined 的原因, b , c是因为如何for loop有效。

for (initialization; condition; final expression)

让我们分解您的 for 循环。

初始化:i = 0

条件:i < 3

最终表达式:i++, rowName = ['a', 'b', 'c'][i]

第一次进入循环时,i设置为 0 .这是初始化步骤。然后是条件步骤,i < 3 , 被选中。这是在每次迭代之前完成的,以决定是否继续循环。在每个循环之后,最终表达式 被计算。在您的示例中,您递增 i设置前 rowName等于 ['a', 'b', 'c'] 中的一个元素基于当前指数。

在您的例子中,在第一次迭代中,rowNameundefined因为 final expression 尚未计算。此后的每次迭代都按照您的预期进行,因为之前已经计算了最终表达式。

关于javascript - 为什么这个简单的 for 循环没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684504/

相关文章:

javascript - 如何在手机缝隙中创建弹出窗口?

javascript - JS - 如何正确放置局部变量

javascript - 循环: images land on the last field only

c# - 无法使用 for 循环通过用户输入用 double 值填充数组。 C#

php - $GLOBALS 上的 foreach 函数产生 fatal error

javascript - 如何在 JavaScript 中使用循环将十六进制转换为十进制

javascript - 单击时禁用 ui-select 的突出显示

javascript - 输入文本时,具有可扩展行的 Vuetify 数据表会崩溃

javascript - 按键事件中的数字验证以及小数点

python - 如何在给定特定规则集的情况下分割字符串?