逗号分隔值(1,2,3,4)或(1,false)总是给出javascript中的最后一个元素?

Cod*_*ode 2 javascript

我无法理解javascript正在为下面的字符串做什么.

console.log((1,2,3,4)); //print 4
console.log((1,false)); //print false
Run Code Online (Sandbox Code Playgroud)

不知道在哪种情况下我可以使用它.

Que*_*tin 5

因为这就是逗号运算符被定义为正在做的事情.它评估为RHS.

生产表达式:表达式,AssignmentExpression的评估如下:

  1. 让lref成为评估Expression的结果.
  2. 调用GetValue(lref).
  3. 让rref成为评估AssignmentExpression的结果.
  4. 返回GetValue(rref).

另见MDN:

逗号运算符计算其每个操作数(从左到右)并返回最后一个操作数的值.

如果要在需要单个表达式的位置包含多个表达式,可以使用逗号运算符.此运算符的最常见用法是在for循环中提供多个参数.

在LHS上使用不可变值是没有意义的.