了解Javascript对象初始化密钥
问题描述:
有以下任何区别?:了解Javascript对象初始化密钥
var object1= {
a: 0,
b: 1,
c: 2
};
VS
var object2= {
'a': 0,
'b': 1,
'c': 2
};
答
有在你的例子没有区别。如果你想让你的房产名称成为一个数字或者有空格(这两个都是有效的,但是很奇怪),那将会有所不同。
var object3 = {
'123': 0,
'hello world' : 1
}
// This is valid
alert(object3['123']); // -> 0
alert(object3['hello world']); // -> 1
// This is not
alert(object3.123); // -> Syntax Error
如果你有两分钟,你可能会觉得这个页面非常有帮助。
http://bonsaiden.github.com/JavaScript-Garden/#object.general
答
没有区别。两种语法都是正确的
答
这两者都是平等的,因为在javascript中,对象attrs。可以是字符串或纯文本。
答
jessegavin的回答已经解释了您询问的所有内容,但让我补充一件您未曾问到但可能需要知道的事情。
所有这些都是有效的JavaScript对象常量:
{ a: 0, b: 1, c: 2 }
{ 'a': 0, 'b': 1, 'c': 2 }
{ "a": 0, "b": 1, "c": 2 }
,但只有最后一个是有效的JSON。在JSON中没有正确引用键可能是程序生成无效JSON的主要原因,无效的JSON似乎是人们使用AJAX时遇到的主要问题。
不完全是你的问题的答案,但它仍然是相关的,并可能在未来为你节省一些麻烦。
+0
@ rsp-感谢那些有价值的提示 – Yarin 2011-03-15 04:20:08
@ jessegavin-伟大的链接,谢谢 – Yarin 2011-03-15 03:36:15
是的Javascript花园太棒了!它很好地解释了事情。 – jessegavin 2011-03-15 03:37:29
我不会链接到JavaScript Garden,主要是因为它没有提供完整的解释 - 我们没有着手涵盖关于主题的所有内容,只包括最奇怪的位;我打算推荐MDC,但是它们在Objects上的页面严重过时(JavaScript 1.0?认真?),所以我想现在会这样做) – 2011-03-15 04:15:00