为什么`函数|| (..args) => {...}` 不编译?

Why `func || (..args) => {...}` does not compile?

以下代码段无法编译:

const a = a || (...args) => {
  console.log(args);
}

出现以下错误:

repl: Unexpected token (1:16)
> 1 | const a = a || (...args) => {
    |                 ^
  2 |   console.log(args);
  3 | }

通过以下解决方法,它起作用了:

const a = a ? a : (...args) => {
  console.log(args);
}

除了原来的问题,@loganfsmyth 已经解决了。下一个问题是,为什么下面的代码有效?

const a = a || () => {}

这段代码中有两个不同的问题。您的问题的具体答案是您需要parens,例如

const a = a || ((...args) => {
  console.log(args);
});

但是这也不起作用,因为您也在 a 初始化之前阅读它,这将触发抛出时间死区错误。虽然不清楚为什么要在这段代码中使用 a