下面的for循环条件中的逗号起什么作用

for (var i = 0, j = 0; j < 5, i < 3; i++, j++) {


}

console.log(i * j) // 9

换下位置以后


for (var i = 0, j = 0; i < 3, j < 5; i++, j++) {


}

console.log(i * j) // 25


GCT1015
浏览 767回答 1
1回答

一只斗牛犬

for规范中规定&nbsp;for&nbsp;语句的定义如下:for ([initialization]; [condition]; [final-expression])&nbsp; &nbsp;statementfor 循环继续与否取决于 condition === true如果你在 condition 处写了 i < 3, j < 5 这种语句,这里的,属于逗号操作符。逗号操作符的效果是对它的每个操作数求值(从左到右),并返回最后一个操作数的值。因此,题目中两种情况下,在 i = 3, j = 3 的情况下:console.log(j < 5, i < 3) //falseconsole.log(i < 3, j < 5) //true因此第一种情况下,循环只跑到了 i = 3, j = 3;在第二种情况下,循环即使到了 i = 3, j = 3,由于 (i < 3, j < 5) === true ,for会继续为 i累积,直到 j == 5,此时 i = 5, j = 5
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript