跳到主要内容

尾后逗号

为什么有时候可以让最后一个保留逗号',',有时候不行?

  • 尾后逗号 (有时叫做“终止逗号”)在向 JavaScript 代码添加元素、参数、属性时十分有用。

  • 如果你想要添加新的属性,并且上一行已经使用了尾后逗号,你可以仅仅添加新的一行,而不需要修改上一行。

  • 这使得版本控制的代码比较(diff)更加清晰,代码编辑过程中遇到的麻烦更少。

  • JavaScript 一开始就支持数组字面量中的尾后逗号,随后向对象字面量(ECMAScript 5)中添加了尾后逗号。

  • 最近(ECMAScript 2017),又将其添加到函数参数中。

  • 但是,JSON 不允许尾后逗号。

JSON 不允许尾后逗号

  • 对象中的尾后逗号仅仅在 ES 5 中引入。由于 JSON 基于 ES5 之前的语法, JSON 中并不允许尾后逗号。
这是错误写法
JSON.parse('[1, 2, 3, 4, ]')
JSON.parse('{"foo" : 1, }')
// SyntaxError JSON.parse: unexpected character
// at line 1 column 14 of the JSON data
正确写法是,去掉尾后逗号就行了
JSON.parse('[1, 2, 3, 4 ]')
JSON.parse('{"foo" : 1 }')