我想知道为什么在JavaScript数组中将逗号放在单个元素的末尾是合法的:

var array = [
    'foo', // no error in IDE
]

而将其放在对象中单个元素的末尾是非法的(至少我的IDE-WebStorm-正在标记错误):
var object = {
    'foo': 'bar', // error in IDE
}

这真的在JavaScript中是非法的吗?

最佳答案

在ECMAScript 5规范中,这是合法的:

ObjectLiteral :
    { }
    { PropertyNameAndValueList }
    { PropertyNameAndValueList , }

It was illegal in ECMAScript 3.

ObjectLiteral :
    { }
    { PropertyNameAndValueList }

I believe it was made legal to make things like this doable.

function getItems() {
    return {
        one : 1,
        two : 2,
        three : 3,
        //four : 4,
    };
}

代替这个:
function getItems() {
    return {
        one : 1,
        two : 2,
        three : 3//,
        //four : 4,
    };
}

节省一些程序员的时间。

关于javascript - javascript对象中单个元素末尾的“,”是否非法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4116268/

10-16 15:50
查看更多