锁定前增量和后增量

Grok the pre- and postincrement

本文关键字:锁定      更新时间:2023-09-26

下面是示例代码:

for(var i = 0; i<10; i++){
    console.log(i);
}
var x = 20;
switch(x++){
  case 20:
    console.log("20 " + x++);
    break;
  case 21:
    console.log("21 " + x++);
    break;
  default:
    console.log(x++);
    break;
}

对于后增量的情况,console.log(expression)和switch(expression){}在递增之前获取值。在我的例子中,我得到"20 21"作为switch语句的结果。

为什么在for循环中使用后加还是预加并不重要?

查看执行增量操作的语句:

i++

不处理返回值。它没有被赋值给变量。它没有传递给函数。

返回值是在增量之前还是之后都没有关系,因为它会被忽略。

为了帮助您理解发生了什么,您可以重写for循环

for (var i = 0; i < 10; i++) {
    console.log(i);
}

到像

这样的while循环
var i = 0;
while (i < 10) {
    console.log(i);
    i++;
}

把它想象成一个while循环可能会更清楚,为什么写i++++i并不重要。

相关文章: