使用点表示法访问对象的数字属性 [英] Access numeric properties of an object using dot notation

查看:23
本文介绍了使用点表示法访问对象的数字属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么不能使用点表示法而不是方括号表示法访问此类似数组的对象的属性?

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;

说明in the ECMAScript specification

点符号由以下语法转换解释:

MemberExpression.标识符名称

并且标识符不能以数字as described here开头:

标识符名称::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart::
UnicodeLetter
$
_
UnicodeEscapeSequence

至于推理,将标识符名称仅由数字组成会使编写数字文字变得困难。异常可能只是为数组访问而设计的,但这会使语言变得更加复杂,并且背离了通用的C系列语法,而没有任何真正的好处。

这篇关于使用点表示法访问对象的数字属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆