这个问题在这里已有答案:
以下代码执行时,
true && () => {}
产量
Uncaught SyntaxError: Malformed arrow function parameter list
为什么?
编辑:我知道在括号中包装函数,感谢大家,但我想了解为什么解析器首先无法找出它是一个函数。
原因是第一部分true || (a)
被自己解析,然后解析器试图解析其余的=> {}
,这会导致错误。
它正在解析true && ()
作为参数列表。
因为箭头函数具有特殊的解析规则。请参阅解析订单段落中的official documentation。