【问题标题】:Uncaught SyntaxError: Unexpected token = in Google ChromeUncaught SyntaxError: Unexpected token = in Google Chrome
【发布时间】:2013-11-11 00:43:39
【问题描述】:

我有一个接受可选参数的 javascript 函数。这在Firefox 中运行良好,但在Google Chrome 中显示:-

Uncaught SyntaxError: Unexpected token =

我的代码,

function errorNotification(text = "Something went wrong!") {
  $.pnotify({
      title: 'Error',
      text: text,
      type: 'error'
  });
}

我见过很多类似的问题,但我无法意识到我的问题。

【问题讨论】:

    标签: javascript jquery google-chrome console pnotify


    【解决方案1】:

    您正在使用default parameter 功能,目前只有 Firefox 支持。

    function errorNotification(text) {
        text = text || "Something went wrong!";
        $.pnotify({
            title: 'Error',
            text: text,
            type: 'error'
        });
    }
    

    【讨论】:

    • 现在它显示Uncaught SyntaxError: Unexpected token ; 对应行text = typeof text == 'undefined' ? "Something went wrong!" || text;
    • @devo 因为它在 Firefox 中受支持阅读文档developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
    • 我喜欢早期的回答和 +1 的其他解释。
    • 谢谢 - 这对我也有用 - 问题也为我解决了。具有讽刺意味的是(尽管完全不相关——但仍然很有趣,因为地图是由谷歌制作的,Chrome 是由谷歌制作的)当我为 latlong 坐标使用默认参数时出现了我的错误。 Chrome 搞砸了 Google 产品:P
    【解决方案2】:

    Javascript 不允许你传递这样的默认参数。您需要在内部为函数分配默认值。

    function errorNotification(text) {
      text || (text = "Something went wrong!");
      $.pnotify({
          title: 'Error',
          text: text,
          type: 'error'
      });
    }
    

    【讨论】:

    • 是的。它正在工作。你能解释一下为什么它可以在 Firefox 中运行吗?
    • 听到这个消息我感到非常惊讶。如果它在 Firefox 中运行,那么 Firefox 一定会以某种方式原谅你的无效语法,或者问题只是被吞没了,所以你没有注意到它。您的原始代码是无效的 Javascript 语法,因此它应该在各处抛出错误,除非 JS 实现中存在错误。
    • @devo 当ECMAScript 6 最终确定时,默认参数值应该成为语言的一部分。 Mozilla 很早就添加了对它的支持。
    • 啊。这很酷,但不幸的是,我们真的无法在几年内编写依赖它的代码......
    • 感谢 +1 的正确解释。
    【解决方案3】:

    注意:如果您有一个要默认为 true 的布尔值,则其他答案将不起作用。那是因为anything||true 将始终返回true。相反,您应该执行以下操作:

    function foo(bar){
      if(bar === undefined)
        bar = true;
      //rest of your function
    }
    

    【讨论】:

      【解决方案4】:

      function [a-zA-Z0-9_]*?\s{0,}\([^=$)]*?(=)[^)$]*?\) 找到带有默认参数的js函数然后更正它们会很有帮助。

      【讨论】:

      • 我将如何使用它来查找函数?
      猜你喜欢
      • 1970-01-01
      • 2019-03-18
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多