为什么我不能在Javascript中调用array.0?

时间:2012-09-17 12:28:02

标签: javascript

此代码将警告对象a中的所有属性名称。 0,1,2和你好。

Object.prototype.hello = {};

var a = [1,2,3];

for ( var number in a ) {
    alert( number)
}

我的问题是,我可以通过以下语法访问属性hello:

a.hello

但为什么我不能访问应该等于1的a.0。数组是否会创建“真实属性”?

我知道我可以通过[0]和[“你好”]

访问属性

4 个答案:

答案 0 :(得分:7)

这是一种语法限制。在JavaScript中,标识符不能以数字开头,因此0不是有效的。然后a.0会产生语法错误。

答案 1 :(得分:3)

Because

  

JavaScript标识符必须以字母,下划线(_)或开头   美元符号($);

答案 2 :(得分:2)

使用语法myArray[index]访问数组中的项。 点表示法仅允许您访问名称为有效标识符的属性,并且数组中项目的索引(数字)不符合条件。因此,您必须使用更宽松的括号表示法。

答案 3 :(得分:1)

JavaScript标识符不能以数字开头。您尝试访问的属性是对象内的标识符。

你会在这里找到https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Values,_variables,_and_literals这个片段:

  

变量

     

您可以将变量用作应用程序中值的符号名称。   名为标识符的变量名称符合某些规则。

     

JavaScript标识符必须以字母,下划线(_)或开头   美元符号($);后续字符也可以是数字(0-9)。   由于JavaScript区分大小写,因此字母包含字符   “A”到“Z”(大写)和字符“a”到“z”   (小写)。

     

从JavaScript 1.5开始,您可以使用ISO 8859-1或Unicode   标识符中的å和ü等字母。您也可以使用\ uXXXX   Unicode转义序列作为标识符中的字符。

     

合法名称的一些示例是Number_hits,temp99和_name。