对象的键可以是数值吗?

时间:2014-11-19 07:08:28

标签: javascript node.js

在nodejs终端上创建以下对象 a ,其中包含数字和非数字键。

可以使用语法 a。访问非数字键的值。其中,无法使用相同的语法访问数字键的值。

$ node
> a = { 2: 'val1', 3: 'val2', 4: 'val3', obj: 'val4' }
{ '2': 'val1',
  '3': 'val2',
  '4': 'val3',
  obj: 'val4' }
> a.obj
'val4'
> a.'2' # cannot access the value
...
> a.2
...
...

为什么会出现这种限制。用数字键创建对象是否可以?。

1 个答案:

答案 0 :(得分:0)

限制是因为点符号遵循与普通变量相同的命名规则。

您可以使用方括号访问所有字段:

var a = {foo: 'bar', 5: 'bar2'};
alert(a[5]); //bar2
alert(a['foo']); //bar