当使用逗号组合赋值(可能不应该做的事情)时,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
括号在这里做什么?
答案 0 :(得分:3)
我在这里混淆了两件事。第一次调用'nl'是一个带有四个参数的函数调用。第二个是将逗号评估为一个参数。
所以,答案是:用','分隔的表达式列表的值是value of the last expression。