它会是类似数组的对象,但为什么我们不能用点表示法而不是括号表示法来访问它?
function testArray (rat){
return typeof arguments;
}
console.log(testArray("test")); // object
function testArray (rat){
return arguments.0; //[0] is work
}
console.log(testArray("test")); // error
答案 0 :(得分:5)
您的问题似乎是为什么我们无法使用像这样的点符号访问数组和类数组元素
var v = a.0;
然后,它描述了in the ECMAScript specification:
点符号由以下语法转换解释:
MemberExpression。 IdentifierName
标识符不能以数字as described here开头:
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeLetter
$
_
\ UnicodeEscapeSequence
至于推理,如果标识符名称只是由数字组成,那么就很难编写数字文字。可能只是为数组访问设计了一个异常,但这会使语言变得更复杂,并且偏离了常见的C系列语法而没有任何实际的好处。
答案 1 :(得分:0)
你可以:
var arr = [];
arr.foo = 'foo';
console.log(arr.foo); // => 'foo'