理解Javascript对象初始化键

时间:2011-03-15 03:30:35

标签: javascript

以下是否有任何区别?:

var object1= {
  a: 0,
  b: 1,
  c: 2
};

VS

var object2= {
  'a': 0,
  'b': 1,
  'c': 2
};

4 个答案:

答案 0 :(得分:13)

你的例子没有区别。如果您希望您的属性名称是数字或有空格(两者都有效,但很奇怪)会有所不同。

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

答案 1 :(得分:6)

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时出现问题的主要原因。

不完全是你的问题的答案,但它仍然是相关的,并可能在将来为你节省一些麻烦。

答案 2 :(得分:0)

没有区别。两种语法都是正确的

答案 3 :(得分:0)

这两者都是平等的,因为在javascript中,对象是attrs。可以是字符串或纯文本。