【问题标题】:Uncaught SyntaxError: Unexpected token return - still no answer?Uncaught SyntaxError: Unexpected token return - 仍然没有答案?
【发布时间】:2014-01-10 14:51:59
【问题描述】:

所以这个标题有几十个问题,但是,我能找到的所有答案似乎都提到了一些在某些特定情况下有效但在其他情况下没有帮助的技巧。许多人关心 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;
}

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

【问题讨论】:

    标签: javascript function compiler-errors return syntax-error


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,有趣,我期待 return true 评估为 true
    【解决方案2】:

    您在表达式中使用return 语句作为表达式,这是不可能的,因为 JavaScript 引擎无法评估它。这就是它抛出错误的原因。

    【讨论】:

      猜你喜欢
      • 2012-05-17
      • 2019-02-10
      • 2014-07-08
      • 2011-03-09
      • 2014-01-06
      • 2012-04-10
      • 1970-01-01
      相关资源
      最近更新 更多