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

新手上路,请多包涵

以下代码在执行时,

 true && () => {}

产量

Uncaught SyntaxError: Malformed arrow function parameter list

为什么 ?

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

原文由 João Pinto Jerónimo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

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

原文由 Ivan Castellanos 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

原文由 Trevor Dixon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题