for循环与逗号运算符

  最近在复习 JavaScript 的过程中看到了一道有关 for 循环与逗号运算符的题目,感觉挺有意思的。for 循环是最常用的循环结构之一,逗号运算符(,)则是一个较为特殊但有用的运算符。本文将先整理他们的基本知识点,然后再完成这道题目。

for 循环

1
2
3
for (初始化; 条件; 更新) {
// 循环体
}
  • 初始化:在循环开始时执行一次,通常用于声明并初始化循环变量。
  • 条件:在每次迭代前进行判断,返回 true 继续循环,返回 false 终止循环。
  • 更新:在每次循环结束后执行,通常用于递增或递减循环变量。

逗号运算符

逗号运算符用于在一个表达式中执行多个操作,但只返回最后一个表达式的值

示例:

1
2
3
console.log((1,2,3)) // 输出 3
console.log((true,false,5,3)) // 输出 3(返回最后一个表达式的值)
const a = (console.log(1),console.log(2)) // 输出 1,2(每个都会执行)

题目示例

问题:以下代码的执行结果是?

1
2
3
4
5
6
var i = 0;
var j = 0;
for (; i < 20, j < 5; i++, j++) {
k = i + j;
}
console.log(k);

分析:

  1. 初始化部分:for 循环的初始化没有值,在前面初始化了 i 、 j 均为 0
  2. 条件部分:运用了逗号表达式,虽然看似有两个条件,但是实际上只会返回 j<5 的值作为结果
  3. 更新部分:每次循环结束后 i 和 j 均递增

过程:

迭代 i j k = i + j
0 0 0 0
1 1 1 2
2 2 2 4
3 3 3 6
4 4 4 8

第四次循环结束后,i=j=5,不满足 j<5 的条件,循环结束

此时 k = 8,故最终输出为 8

作者

Fu9Zhou

发布于

2025-03-10

许可协议