题
当将赋值与逗号结合使用时(可能你不应该这样做),javascript如何确定分配哪个值?考虑这两个片段:
function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl(i+=1, i+=1, i+=1, i+=1);
nl(i);
和:
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
这里的括号是做什么用的?
解决方案
我在这里混淆了两件事。对“nl”的第一次调用是带有四个参数的函数调用。第二个是将逗号评估为一个参数。
所以,答案是:由“,”分隔的表达式列表的值是 最后一个表达式的值.
不隶属于 StackOverflow