可能重复:
带引号和不带引号的对象键有什么区别?
我主要通过使用 JavaScript 来了解它,但有些东西我还不明白。
这两个对象字面量有什么区别:
var obj1 = {
myProp: '123'
};
var obj2 = {
'myProp': '123'
};
它们只是“同义词”,还是有细微的差别?
谢谢!
可能重复:
带引号和不带引号的对象键有什么区别?
我主要通过使用 JavaScript 来了解它,但有些东西我还不明白。
这两个对象字面量有什么区别:
var obj1 = {
myProp: '123'
};
var obj2 = {
'myProp': '123'
};
它们只是“同义词”,还是有细微的差别?
谢谢!
在对象初始值设定项语法中,键可以是数字文字、标识符或字符串。
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"
。
当里面没有操作员时什么都没有。
var obj1 = {
my+Prop: '123' // illegal
};
var obj2 = {
'my+Prop': '123' // legal
};