在括号中定义具有多个值的变量使用第二个值

Defining variable with multiple values in parentheses uses 2nd value

对了,我的问题是:

var x = (val1,val2);

将 x 的值设置为 val2;

为什么?

因为这就是 comma operator 的工作方式:它计算它的两个操作数,表达式的结果是第二个操作数的值。

请注意,如果没有括号,这与您所拥有的非常不同

// Differs *significantly* from your example:
var x = val1, val2;

如果没有括号,您根本不会使用逗号运算符,您将使用逗号作为 var statement 的声明列表的一部分,它具有不同的语义——具体来说, x 获取 val1 的值并且您有一个 val2 的声明,该声明未在该代码中初始化。

但同样,这完全是另一回事。