【问题标题】:'Syntax error, unexpected token =' in js functionjs函数中的'语法错误,意外令牌='
【发布时间】:2015-10-26 07:25:52
【问题描述】:

当 Mozilla 处理良好时,我在 chrome 中收到此错误。我在这样的函数中收到此错误

function abc( xyz = false){ "My logic" }

错误指向 '=' 运算符。请帮忙。

【问题讨论】:

  • 从 ES5 开始没有默认参数,function abc( xyz){ xyz = xyz || false; "My logic" }
  • xyz = false 是怎么回事?编译器期望那里有一个标识符,但正在获得一个赋值。
  • Mozilla 支持默认参数,而 Chrome 尚不支持。
  • 你可以在这里查看 es6 compatibility table。见“默认函数参数”:
  • 耶稣...人们如何滥用他们的名誉权...!!!

标签: javascript jquery operators


【解决方案1】:

这是 ECMASCRIPT 第 6 版 的标准,称为Default parameters。所以它可能在你的 chrome 版本中不可用,而 FF 有。

你可以通过两种方式达到同样的效果:

function abc( xyz ){ "My logic" }

var pVal = mightbe || false;
abc(pVal); //<---- now pass it here;

或:

function abc( xyz ){ 
    // before processing anything you can do this
    var o = xyz || false; // if there is any value in the xyz then that will
                          // be assigned otherwise false will be the default value.
    "My logic" 
}

【讨论】:

  • 这与解构无关,是不同的东西。
  • 虽然您说的是 ES6 标准是对的,但名称是默认参数。解构赋值只是它的一个子集,例如:function f([x, y] = [1, 2], {z: z} = {z: 3}) {
【解决方案2】:

这是 ES6 语法,大多数浏览器只支持很少的 ES6 功能,您可以从这里查看:https://kangax.github.io/compat-table/es6/(在您的示例中,您使用了默认函数参数)

如果你想写 ES6 语法(这在很多方面都很吸引人),你可以使用一些代码转译工具,比如 babel:https://babeljs.io/

【讨论】:

    猜你喜欢
    • 2017-05-11
    • 2017-08-09
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多