使用点表示法访问对象的数字属性
Access numeric properties of an object using dot notation
为什么我们不能用点符号而不是括号符号来访问这个类似数组的对象的属性?
function testArray(rat){
return typeof arguments;
}
console.log(testArray("test")); // "object"
function testArray(rat){
return arguments.0; // `arguments[0]` works.
}
console.log(testArray("test")); // Throws error.
您的问题似乎是关于为什么我们不能使用这样的点表示法访问数组和类似数组的元素:
const v = a.0;
它在ECMAScript规范中有描述:
点表示法通过以下语法转换来解释:
成员表达式
.
标识符名称
标识符可能不会像这里描述的那样以数字开头:
- 标识符名称::
- IdentifierStart
标识符名称标识符部件- IdentifierStart::
- UnicodeLetter
$
_
'
UnicodeEscapeSequence
至于推理,如果标识符名称只是由数字组成,那么很难写出数字文字。一个例外可能只是为数组访问而设计的,但这会使语言变得更加复杂,并偏离常见的C族语法,而不会带来任何实际好处。
您可以:
var arr = [];
arr.foo = 'foo';
console.log(arr.foo); // => 'foo'
相关文章:
- 如何按对象反转Angular ngRepeat的顺序's键,这些键是数字键
- 对象获胜'如果qml中的其他地方定义了数字动画属性,则t设置动画
- 更改json/javascript对象var名称或从数字var中检索值
- 按数字而不是按名称选择JSON对象
- 在Javascript中,如何在JSON对象中将1.00表示为数字
- 在JavaScript中,在对象上装箱每个数字和字符串的性能成本是多少
- 获取对象的所有可能组合,其中值的总和与数字匹配
- JavaScript 对象 - 未定义的数字键文字
- 转换为对象的数字
- Javascript:接收对象并返回对象中描述的所有数字的列表的函数
- 在对象数组中将数字相加
- 如何在谷歌可视化api柱状图中使用的json对象内用数字替换字符串值
- 将函数应用于填充有数字的对象
- 如何访问以数字开头的对象属性(语法错误:意外的标识符)
- 当键是数字时,如何在JavaScript中对对象值进行排序
- 如何在具有数字的JSON对象中导航
- 检查布尔值并将其转换为对象中的数字
- 使用带有数字键的对象呈现 _.template
- 从 JavaScript 对象获取值,如果属性的前 8 位数字与参数匹配
- 自动分配对象数字键