【问题标题】:Trailing comma in JavaScript function callJavaScript 函数调用中的尾随逗号
【发布时间】:2017-09-06 10:52:03
【问题描述】:

我正在尝试遵循Airbnb定义的JS代码风格。

函数调用参数的尾随逗号规则规定:

7.15 具有多行签名或调用的函数应该像本指南中的所有其他多行列表一样缩进:每个项目单独一行,最后一个项目尾随逗号。

但是当我执行以下操作时:

/* THREE.js constructor for PerspectiveCamera */
const camera = new THREE.PerspectiveCamera(
    75,
    window.innerWidth / window.innerHeight,
    0.1,
    1000,
);

谷歌浏览器抱怨以下错误:

app.js:11 Uncaught SyntaxError: Unexpected token )

当我删除尾随逗号时,一切正常。这段代码在 Firefox 中运行良好,我很确定它在一周前从今天(11.04.2017)在 Chrome 中也能运行 - 因为从那以后我没有更改我的代码并且我正在展示我正在开发的应用程序我的同事。

请注意,数组中的尾随逗号仍然可以正常工作:

testArray = [
    'one',
    'two',
    'three',
];

谁能解释这种行为或指出我可以在哪里寻找更多信息?

在 Ubuntu 16.04 上使用 Google Chrome(版本 57.0.2987.133(64 位))。

【问题讨论】:

  • 它是合法的语法,通常用于大型代码库中,其中 miltuple 可能会向函数添加参数等。但它也是大多数 LINTers 中的设置,因为它确实对长度属性有影响函数和数组,因此它可以创建错误。此外,IE 不喜欢它们。也可以看看stackoverflow.com/questions/7246618/…
  • @Shilly - Chrome 和 FF 也不喜欢函数参数中的尾随逗号。
  • 取决于使用的版本和设置。恕我直言,应避免使用尾随逗号。所以我不喜欢airbnb的风格。但这是个人意见。

标签: javascript google-chrome comma airbnb-js-styleguide


【解决方案1】:

我的团队刚刚遇到了一个使用 Chrome 55.0.2883.87 的用户的问题。 如上所述,此版本的 Chrome 还会在 ')' 处报告意外令牌。

Chrome 60.0.3112.113 似乎可以容忍尾随逗号。 没有错误。

因此我们可以推断出 Google 正在支持试用逗号。

【讨论】:

  • 感谢分享。对于有类似问题的人来说,这绝对是个好消息。
猜你喜欢
  • 2019-02-12
  • 2019-05-09
  • 2014-11-09
  • 2018-01-10
  • 2014-01-19
  • 1970-01-01
  • 2021-01-25
  • 2021-06-05
  • 1970-01-01
相关资源
最近更新 更多