JavaScript-javascript for语句 中的多个判断条件,前者不生效,只跟后者有关,为什么?
for(var i=0,j=0;i<4,j<20;i++,j++){
a=i+j;
}
console.log(a);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
for(var i=0,j=0;i<4,j<20;i++,j++){
a=i+j;
}
console.log(a);
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
不明白的时候就看源代码和手册吧,对于JS你可以要翻ECMA-262 5th Edition,for语句的语义在12.6.3节,逗号的语义在11.14节。
简单来说,expr1,expr2 先对执行expr1再执行expr2,最后返回expr2的结果(这是符合直觉的)。而 for(expr1; expr2; expr3){statement} 在expr2返回值为假的时候结束循环。
所以你的代码其实就是一直循环直到 i<4,j<20 为假,即 j<20 为假(因为我们返回expr2的值,for循环用这个值判断是否结束)。所以循环结束的时候,j = 19, i = 19,a = i + j = 38。