javascript - 为什么++i 在 for 循环之前不递增 i?

标签 javascript syntax

因此以下两个函数打印出完全相同的结果。

console.log("i++");
 for (i=1; i<=3; i++) {
  console.log(i); // 1, 2
}
console.log("++i");
for (i=1; i<=3; ++i) {
  console.log(i); // 1, 2
}

这非常违反直觉,因为我特别要求后递增一个而另一个递增。 在 for 循环内运行之前增加值是非常可取的行为。这种行为是否一致?,这是特定于 javascript 的,还是跨使用++i、i++ 语法和 for 循环的编程语言的标准行为?

最佳答案

for 中的第三个表达式循环 header 在每次迭代之后 进行评估。因此:

  1. i初始化为 1
  2. 循环测试表达式,i <= 3 , 被评估(发现是 true )
  3. 循环体执行完毕
  4. i++++i发生

除了语法上的细微差别外,这正是 1976 年 C 程序中发生的情况。

关于javascript - 为什么++i 在 for 循环之前不递增 i?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849375/

相关文章:

javascript - 使 Canvas 无限

javascript - 对象停止所有 Javascript

javascript - 使用 Reduce 将数字数组分成 3 block

javascript - JavaScript 模块化方法中 IIFE 和非 IIFE 的区别

php - 将对象传递给 PHP 构造函数错误

JavaScript 不可枚举属性

ruby - 正则表达式在哪个位置失败?

php - 通过 php 填写 mysql 表时出错

c++ - 如何解释像 0x0A 这样的十六进制数?

jquery - 为什么使用内置 jQuery 事件