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

Joã*_*imo 10 javascript logic logical-operators node.js

下面的代码,在执行时,

true && () => {}
Run Code Online (Sandbox Code Playgroud)

产量

Uncaught SyntaxError: Malformed arrow function parameter list
Run Code Online (Sandbox Code Playgroud)

为什么 ?

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

Iva*_*nos 6

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