使用点表示法访问数组或类数组对象的元素

时间:2013-07-16 14:41:18

标签: javascript

它会是类似数组的对象,但为什么我们不能用点表示法而不是括号表示法来访问它?

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

2 个答案:

答案 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'