执行以下代码时,
true && () => {}
产生 (yields)Uncaught SyntaxError: Malformed arrow function parameter list
为什么?
编辑:我知道将函数用括号括起来可以解决问题,谢谢大家,但我想知道为什么解析器一开始无法识别它是一个函数。执行以下代码时,
true && () => {}
产生 (yields)Uncaught SyntaxError: Malformed arrow function parameter list
为什么?
编辑:我知道将函数用括号括起来可以解决问题,谢谢大家,但我想知道为什么解析器一开始无法识别它是一个函数。true || (a)
先被单独解析,然后解析器试图解析剩下的部分 => {}
,导致了错误的发生。它将 true && ()
解析为参数列表。
const r2 = await () => !r1.canceled && fsp.readFile('./config.json', 'utf8')
?有任何想法吗? - oldboy由于箭头函数具有特殊的解析规则。请参见官方文档中解析顺序段落。
return
。不包含return
语句不会导致语法问题。 - ziggy wiggy
true && (() => {})
应该可以工作。 - Titian Cernicova-Dragomir