因此,与此标题相关的问题有很多,但是,我能找到的所有答案似乎都提到了某些在某些特定情况下有效的骇客,但在其他情况下却无济于事。许多人都在关注jQuery或Ajax,但问题是在最基本的层次上出现了纯JavaScript:

function f() {
  false || (return true);
}

该函数声明(不执行)抛出
Uncaught SyntaxError: Unexpected token return
在Chrome和
SyntaxError: Return statements are only valid inside functions
在Safari中。但是,此功能不能:
function f() {
  false || (a=true);
  return true;
}

有人可以解释这种奇怪的行为吗?

最佳答案

因为return不是表达式,但是它需要一个表达式:

function f() {
  return false || true;
}

09-25 20:01