我一直在搞乱在短路操作中使用逗号:
let component = { on: (p1, p2, p3) => console.log(p1, p2, p3) };
component.on('something', () => console.log('what do'), '???');
'???'
是否为参数似乎不明确
对此有什么规定吗?
谢谢!
let canTry = true;
while (canTry --> false) {
console.log(('leet hax','your mom'));
}
order of operations似乎没有帮助,因为它没有描述参数
答案 0 :(得分:1)
规范定义了运算符的优先级,这就是你可以知道的。
Expression[In, Yield]: AssignmentExpression[?In, ?Yield] Expression[?In, ?Yield] , AssignmentExpression[?In, ?Yield]
14.2 - Arrow Function Definitions
ConciseBody[In]: [lookahead ≠ {]AssignmentExpression[?In] {FunctionBody}
箭头函数的简洁主体必须是 AssignmentExpression ,它不能直接包含逗号。但是逗号运算符可以分隔不同的 AssignmentExpression 。
如果您想明确自己在做什么,请添加括号:
console.log( (() => 2), 3 );
console.log( (() => 2, 3) );
console.log( () => (2, 3) );