JavaScript 逗号运算符
当将赋值与逗号结合使用时(可能你不应该这样做),javascript如何确定分配哪个值? 考虑这两个片段:
function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl(i+=1, i+=1, i+=1, i+=1);
nl(i);
And:
function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl((i+=1, i+=1, i+=1, i+=1));
nl(i);
第一个输出
1
4
,第二个输出
4
4
这里的括号有什么作用?
When combining assignment with comma (something that you shouldn't do, probably), how does javascript determine which value is assigned? Consider these two snippets:
function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl(i+=1, i+=1, i+=1, i+=1);
nl(i);
And:
function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl((i+=1, i+=1, i+=1, i+=1));
nl(i);
The first outputs
1
4
while the second outputs
4
4
What are the parentheses doing here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在这里混淆了两件事。 对“nl”的第一次调用是带有四个参数的函数调用。 第二个是将逗号评估为一个参数。
因此,答案是:以 ',' 分隔的表达式列表的值是 最后一个表达式的值。
I was confusing two things, here. The first call to 'nl' is a function call with four arguments. The second is the evaluation of the comma into one argument.
So, the answer: the value of a list of expressions separated by ',' is the value of the last expression.