下面的代码返回true。如果是这种情况,为什么代码中的第4行错误?
var x = ['a', 'e', 'f'];
x[2];
alert('2' in x);
alert(x.2);
答案 0 :(得分:2)
您可以使用点语法访问的唯一属性名称是符合JavaScript的标识符名称规则的名称(第一个字符是字母,_或$,其余字符是字母,数字,_或$)。
你有什么语法错误,这就是它出错的原因。
来自MDN:
点符号
get = object.property;
object.property = set;
property必须是有效的JavaScript标识符,即一系列字母数字字符,也包括下划线(“_”)和美元符号(“$”),它们不能以数字开头。例如,object。$ 1有效,而object.1不是。
您可以使用方括号表示法访问具有任何名称的属性,因此以下任一项都将返回您想要的项目:
x[2];
x["2"];