为什么"true && () => {}"会产生"Uncaught SyntaxError: Malformed arrow function parameter list"?



以下代码,在执行时,

true && () => {}

收益 率

Uncaught SyntaxError: Malformed arrow function parameter list

为什么?

编辑:我知道将函数包装在括号中是有效的,谢谢大家,但我想了解为什么解析器不能首先弄清楚它是一个函数。

原因是

由于第一部分true || (a)被自己解析,然后解析器试图解析其余部分=> {},这导致了错误。

它解析true && ()作为参数列表。

因为箭头函数具有特殊的解析规则。请参阅解析顺序段落中的官方文档。

最新更新