对于JavaScript对象,对于它的属性,我通常不会为其添加单引号。我记得如果我添加一个单引号到一个对象的属性,它将成为一个JSON?我对吗?为什么要将单引号添加到对象的属性
请看这段代码,两段代码都会输出对象的值。请解释一下,我是否需要为对象的属性添加单引号?
var test1 = {
foo: 'foo1',
bar: 'bar1'
};
alert(test1.foo);
var test2 = {
'foo': 'foo1',
'bar': 'bar1'
};
alert(test2.foo);
https://jsfiddle.net/azp9wj0x/
JSON对属性名称使用双引号。请注意,即使你在这里使用它们,它仍然不会是JSON,它仍然是一个对象字面量。请参阅[JSON和对象文字符号之间的区别?](https://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation) –
它会在这两种情况下仍然是JavaScript对象字面值。您不需要单引号,但如果由于某种原因,您的属性名称违反了标准命名约定(如空格),则可以使用引号。 – lintmouse
单引号是文字字符串。当值包含特殊字符(如“\ n”)时,使用双引号。 – schylake