我可以使用JavaScript中的comma operator来评估多个表达式并返回最后一个表达式。
x = "foo", "bar"; // "bar"
y = 0, 21, 42; // 42
但是如果涉及函数应用程序,为什么括号必不可少?
arr = [1,2,3];
z1 = (arr.push(4), arr); // [1,2,3,4]
z2 = arr.push(5), arr; // 5 ??
为什么最后一条语句将 z2 设置为 5 而不是 arr ?这与前一个正确设置 z1 的语句的前一个有何不同?