以下代码在执行时
true && () => {}
收益
Uncaught SyntaxError: Malformed arrow function parameter list
为什么?
编辑:谢谢大家,我知道将函数包装在括号中是有效的,但是我想理解为什么解析器首先不能弄清楚它是一个函数。
答案 0 :(得分:2)
原因是由于true || (a)
的第一部分被自身解析,然后解析器试图解析其余的=> {}
,从而导致错误。
答案 1 :(得分:0)
它正在将true && ()
解析为参数列表。
答案 2 :(得分:-2)
因为箭头功能具有特殊的解析规则。请参阅解析顺序段落中的official documentation。