Why does "true && () => {}" produce "Uncaught SyntaxError: Malformed arrow function parameter list"?
Why does "true && () => {}" produce "Uncaught SyntaxError: Malformed arrow function parameter list"?
下面的代码,执行时,
true && () => {}
产量
Uncaught SyntaxError: Malformed arrow function parameter list
为什么?
编辑:我知道将函数括在括号中是可行的,谢谢大家,但我想了解为什么解析器不能首先确定它是一个函数。
因为箭头函数有特殊的解析规则。请参阅 official documentation 的 解析顺序 段落。
正在解析true && ()
作为参数列表
原因是第一部分 true || (a)
被自己解析,然后解析器试图解析其余部分 => {}
,这导致了错误。
下面的代码,执行时,
true && () => {}
产量
Uncaught SyntaxError: Malformed arrow function parameter list
为什么?
编辑:我知道将函数括在括号中是可行的,谢谢大家,但我想了解为什么解析器不能首先确定它是一个函数。
因为箭头函数有特殊的解析规则。请参阅 official documentation 的 解析顺序 段落。
正在解析true && ()
作为参数列表
原因是第一部分 true || (a)
被自己解析,然后解析器试图解析其余部分 => {}
,这导致了错误。