为什么 prettier 在对象的最后一个元素处放置逗号“,”

sha*_*669 8 html javascript chart.js visual-studio-code prettier

在 Visual Studio 代码中,当我在应用程序中使用Chart.js时,Prettier 总是在对象“标签”的最后一个数据的末尾放置一个逗号。我认为,它造成了一个错误,无法在浏览器上显示我的图表。它显示空白。代码如下。

let massPopChart2 = new Chart(myChart2, {
  type: "bar", // bar, horizontalBar, pie, line, doughnut, radar, polarArea
  data: {
    labels: [
      "1st Day",
      "2nd Day",
      "3rd Day",
      "4th Day",
      "5th Day",
      "6th Day",
      "7th Day",
    ],
  },
});
Run Code Online (Sandbox Code Playgroud)
谁能帮我弄清楚为什么会发生这种情况?

Jef*_*f B 7

JavaScript 从一开始就允许在数组文字中使用尾随逗号,后来将它们添加到对象文字 (ECMAScript 5) 中,最近 (ECMAScript 2017) 中添加到函数参数中。

这是语法上相对较新的变化,但基本思想是在每行上放置一个逗号可以:

  1. 更容易添加商品或重新订购商品。之前您总是必须检查尾随逗号并确保它存在或根据位置删除。
  2. 无需让一个行项目变得特殊,因为它缺少,.
  3. 允许更清晰的 Git 差异。

如果您愿意,您可以阅读完整的文档 - 它包含更多详细信息: https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Trailing_commas


至于图表不显示的问题,除非您使用的是非常旧的浏览器,否则尾随逗号不应导致错误/信息不显示。

  • 在好处中,我想补充一点,如果您使用 git 或其他版本控制系统,它会产生更清晰的差异,因为如果没有最后一个逗号,当您在末尾添加项目时,您总是会更改上一行。据我所知,JSON 规范不允许在最后一个元素末尾使用逗号,这很遗憾。 (2认同)