所以这个标题有几十个问题,但是,我能找到的所有答案似乎都提到了一些在某些特定情况下工作的黑客,但在其他情况下并没有帮助。许多人都关注jQuery或Ajax,但问题是纯粹的JavaScript出现在非常基本的层面:
function f() {
false || (return true);
}
此函数声明(不执行)抛出
Uncaught SyntaxError: Unexpected token return
和
SyntaxError: Return statements are only valid inside functions
。但是这个功能没有:
function f() {
false || (a=true);
return true;
}
任何人都可以解释这种奇怪的行为吗?
答案 0 :(得分:3)
因为return
不是表达式,但期望表达式:
function f() {
return false || true;
}
答案 1 :(得分:3)
您在表达式中使用return
语句作为表达式,这是不可能的,因为JavaScript引擎无法对其进行求值。这就是为什么它会抛出错误。