我只是在寻找一个为什么这是无效的原因:
() => throw 42;
我知道我可以通过以下方式绕过它:
() => {throw 42};
最佳答案
如果您不使用 block ({}
) 作为 arrow function 的主体,主体必须是 expression :
ArrowFunction:
ArrowParameters[no LineTerminator here] => ConciseBody
ConciseBody:
[lookahead ≠ { ] AssignmentExpression
{ FunctionBody }
但是抛出
是statement ,不是表达式。
理论上
() => throw x;
相当于
() => { return throw x; }
这也无效。
关于javascript - 为什么 `throw` 在 ES6 箭头函数中无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32109822/