此代码将警告对象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]和[“你好”]
访问属性答案 0 :(得分:7)
这是一种语法限制。在JavaScript中,标识符不能以数字开头,因此0
不是有效的。然后a.0
会产生语法错误。
答案 1 :(得分:3)
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。