所以我一直在阅读提议的JavaScript功能,而我关注的是对象文字和数组中的逗号支持。
对于参数,尾随逗号在这里不相关,所以让我们忽略它。我理解版本控制的好处,但我担心它会如何对JSON做出反应。
const arr = [
'red',
'green',
'blue',
];
这将有效。
但是当你返回JSON语法时会发生什么? RFC支持JSON,所以我怀疑JSON是否会支持尾随逗号。也许有一天......
但JavaScript将如何处理返回类似的内容:
const jsonReturn = [{
"derp":1
}, {
"foo":"bar"
}, {
"slide":true,
},];
如果标题内容类型是JSON还是尾随逗号会破坏所有内容,是否会在内部删除尾随逗号?
答案 0 :(得分:7)
您不会遇到任何问题,因为JSON和JS源彼此无关。
JSON没有(并且为了示例,不会)支持尾随逗号。 The current JSON spec清楚地表明逗号可能只出现在对象或数组中的值之间。
如果JS确实引入了对尾随逗号的支持,则对象的源表示和序列化的版本在很大程度上是不相关的。今天的大多数浏览器都会接受尾随逗号,但所有逗号将在实际对象(dict / hash或struct)表示中被丢弃:
> var foo = {bar: 1, baz: 2,};
< undefined
> foo
< Object {bar: 1, baz: 2}
即使在今天,使用尾随逗号序列化对象也可以正常工作:
> JSON.stringify({bar: 1, baz: 2,})
< "{"bar":1,"baz":2}"
逗号仅用于解析源,在运行时的对象表示中不存在。