将括号内的列表表达式分配给 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.
,还需要使用圆括号
使用 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.
,还需要使用圆括号