为什么“ true &&()=> {}”会产生“未捕获的SyntaxError:箭头函数参数列表格式错误”?

时间:2019-04-01 13:26:19

标签: javascript node.js logic logical-operators

以下代码在执行时

true && () => {}

收益

Uncaught SyntaxError: Malformed arrow function parameter list

为什么?

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

3 个答案:

答案 0 :(得分:2)

原因是由于true || (a)的第一部分被自身解析,然后解析器试图解析其余的=> {},从而导致错误。

答案 1 :(得分:0)

它正在将true && ()解析为参数列表。

答案 2 :(得分:-2)

因为箭头功能具有特殊的解析规则。请参阅解析顺序段落中的official documentation