Javascript中的每个属性或数组项后是否应放置逗号?

Javascript中的每个属性或数组项后是否应放置逗号?,javascript,syntax,Javascript,Syntax,我们应该写信吗 var a = [ 'a', 'b', 'c', ]; var b = { '1', '2', '3', }; 或 最正确的方法是什么 我注意到,如果有逗号,IE的旧版本会引发错误,因为它希望在逗号之后有另一个数组项(或属性) 我注意到旧版本的IE在有逗号的情况下会产生错误 这就是不在最后一个元素后面加逗号的原因!然而,事实并非如此 但是请注意,您的第二个示例 var b = { '1', '2', '3', }; …将引发语法错误。我猜你想把它变成一个对象文字,但在写问题时

我们应该写信吗

var a = [ 'a', 'b', 'c', ];
var b = { '1', '2', '3', };

最正确的方法是什么

我注意到,如果有逗号,IE的旧版本会引发错误,因为它希望在逗号之后有另一个数组项(或属性)

我注意到旧版本的IE在有逗号的情况下会产生错误

这就是不在最后一个元素后面加逗号的原因!然而,事实并非如此

但是请注意,您的第二个示例

var b = { '1', '2', '3', };
…将引发语法错误。我猜你想把它变成一个对象文字,但在写问题时犯了一个错误:

var b = { x: '1', y: '2', z: '3', }; //Object literal, no syntax error :)

最正确的方法是不带尾随逗号,因为这意味着后面要跟一些东西。

根据ECMAScript 5规范,两者都是正确的


虽然这与JavaScript、FWIW无关,但后面的逗号是。

我只是嘲笑这种情况:)


+1.但是它不是一个有效的JSON-避免它的另一个原因。@freakish:JSON与它有什么关系?JSON表示法也需要双引号,但在使用对象文字表示法时,这似乎并不相关。@user1689607-实际上没有什么,但由于JSON只是JavaScript的一个非常小、严格的子集,因此值得一提。但是,可能值得注意的是,带有尾随逗号的数组/对象文字仍将字符串化为有效的JSON。@user1689607双引号也是一种很好的做法。OP不太可能编写自己的JSON序列化程序/反序列化程序,但由于JSON现在非常流行(并且与JavaScript直接相关),因此值得一提。相关:。这让我很难过。直接违反ES5规范:“如果一个元素在数组末尾被省略,那么该元素不会影响数组的长度。”我希望它出现在IE<9中,但实际上不是IE9本身。然而,值得注意的是,
[“a”,“b”,].length==3
在正确的实现中。哦,我刚刚尝试过。IE9返回
2
,所以它还不错。在IE8及以下版本中,您可以随时看到类似的情况。是的示例[11.1.4数组初始化器]-->@JamesAllardice抱歉ie9更改了ie7好吗?我不确定IE8是否这样做,因为我手头没有测试。顺便说一句,我没有投反对票。
var b = { x: '1', y: '2', z: '3', }; //Object literal, no syntax error :)
// Firefox and Chrome 
["a", "b",].length // 2

// ie7
["a", "b",].length // 3 :)