-3

可能重复:
带引号和不带引号的对象键有什么区别?

我主要通过使用 JavaScript 来了解它,但有些东西我还不明白。

这两个对象字面量有什么区别:

var obj1 = {
   myProp: '123'
};

var obj2 = {
   'myProp': '123'
};

它们只是“同义词”,还是有细微的差别?

谢谢!

4

2 回答 2

3

在对象初始值设定项语法中,键可以是数字文字、标识符或字符串。

var obj1 = {
    1e9: "123" //valid because it's a numeric literal
}

var obj2 = {
    $_ASd: "123" //Valid because it's a valid identifier I.E. you could make a variable called $_Asd
}

var obj3 = {
    $ hello world: "123" //invalid because it's not an identifier, I.E. you could not make a variable called $ hello world
}

var obj4 = {
    '$ hello world': "123" //valid because it's a valid string
}

之后,无论它在语法中是什么,键都会变成一个字符串,所以在1e9键的情况下将是一个字符串"1000000000"

于 2012-08-05T13:55:55.467 回答
1

当里面没有操作员时什么都没有。

var obj1 = {
   my+Prop: '123' // illegal
};

var obj2 = {
   'my+Prop': '123' // legal
};
于 2012-08-05T13:51:48.797 回答