Javascript 为什么不能像下面给出的那样访问阵列?

Javascript 为什么不能像下面给出的那样访问阵列?,javascript,arrays,Javascript,Arrays,下面的代码返回true。如果是这样,为什么代码中的第四行会出错 var x = ['a', 'e', 'f']; x[2]; alert('2' in x); alert(x.2); 使用点语法可以访问的唯一属性名称是符合JavaScript标识符名称规则的属性名称(第一个字符是字母、\或$,其余字符是字母、数字、\或$) 这里有一个语法错误,这就是它出错的原因 发件人: 点表示法 get=object.property object.property=set 属性必须是有效的JavaScri

下面的代码返回true。如果是这样,为什么代码中的第四行会出错

var x = ['a', 'e', 'f'];
x[2];
alert('2' in x);
alert(x.2);

使用点语法可以访问的唯一属性名称是符合JavaScript标识符名称规则的属性名称(第一个字符是字母、\或$,其余字符是字母、数字、\或$)

这里有一个语法错误,这就是它出错的原因

发件人:

点表示法

get=object.property
object.property=set

属性必须是有效的JavaScript标识符,即字母数字字符序列,还包括下划线(“389;”)和美元符号($”),不能以数字开头。例如,object.$1有效,而object.1无效

可以使用方括号表示法访问具有任何名称的属性,因此以下任一项都将返回所需的项:

x[2];
x["2"];

我敢打赌,这与你不能拥有像
var 2nd=“second”
这样的东西的原因是一样的。标识符不能以数字开头。函数foo(a,b){arguments[1]=2;警报(arguments.length);}foo(1);为什么警报是1而不是2。这是一个不同的问题@Joysamvedh如果你有一个不同的问题,你应该把它作为一个不同的问题来问,但是答案是
参数
不是数组,所以它没有数组的所有行为。