为什么1 在javascript中未定义?

数字1隐式地投射到空数组?

> a = 1[1] undefined > console.log(a) undefined undefined 

数字1隐式地投射到空数组?

不可以。数字值被隐含(暂时)转换为数字对象,并且该对象上的属性1被访问。

您正在使用的括号表示法[1] )不是特定于数组的, 每个对象属性都可以通过括号表示法来访问。 即以下两个是等价的: obj.foo (点符号)和obj['foo'] (括号符号)。

然而,Number对象没有属性1并且访问不存在的属性返回undefined

 var numObj = new Number(1); console.log(numObj[1]);