将括号内的列表表达式分配给 Javascript 中的变量发生了什么?

What's happening assigning a list expression inside parenthesis to a variable in Javascript?

使用 Babel REPL 来检查如何使用变量作为对象字面量 属性 name 我发现

var y = { [X] : 'x', [Y] : 'y' };

// is translated to:

// ... _defineProperty definition ...
var _y;
var y = (_y = {}, _defineProperty(_y, X, 'x'), _defineProperty(_y, Y, 'y'), _y);

现在,我明白 _defineProperty 中发生了什么,但是有人可以向我解释括号内发生了什么吗?

()里面的语句是否按顺序执行,只返回最后一条语句结果?

是的。 comma operator 计算所有表达式和 returns 最后一个的结果,例如

a(), b(), c(); // Calls `a`, `b` and `c`, and returns the value returned by `c`

在您的情况下,由于 operator precedence.

,还需要使用圆括号