未捕获的SyntaxError:意外的令牌返回 - 仍然没有答案?

Dmi*_*sev 7 javascript compiler-errors return function syntax-error

所以这个标题有几十个问题,但是,我能找到的所有答案似乎都提到了一些在某些特定情况下工作但在其他情况下没有帮助的黑客.许多人都关注jQuery或Ajax,但问题是在非常基本的层面上产生的纯JavaScript:

function f() {
  false || (return true);
}
Run Code Online (Sandbox Code Playgroud)

抛出此函数声明(不执行)

Uncaught SyntaxError: Unexpected token return

在Chrome和

SyntaxError: Return statements are only valid inside functions

在Safari中.但是这个功能没有:

function f() {
  false || (a=true);
  return true;
}
Run Code Online (Sandbox Code Playgroud)

有谁能解释这种奇怪的行为?

elc*_*nrs 5

因为return不是表达式,但是期望表达式:

function f() {
  return false || true;
}
Run Code Online (Sandbox Code Playgroud)