您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Javascript对象中的键只能是字符串吗?

Javascript对象中的键只能是字符串吗?

JavaScript的内置对象确实使用属性的方括号表示法提供哈希表功能,前提是您的键是字符串或数字

使用点表示法按名称访问属性

MemberExpression。 标识符名称

CallExpression。 标识符名称

或括号符号:

MemberExpression [表达式]

CallExpression [表达式]

点符号通过以下语法转换进行解释:

MemberExpression。 标识符名称

在行为上与

MemberExpression [ ]

同样

CallExpression。 标识符名称

在行为上与

CallExpression [ ]

其中, _< identifier-name- string>_是一个字符串文字,其中包含在处理Unicode转义序列后与IdentifierName相同的字符序列。

因此,当使用点表示法时,点后的位必须符合IdentifierName的条件。但是,在使用方括号时,会提供一个 表达式 ,该表达式将求值并解析为字符串。

简要地说,提供了方括号符号,以便可以使用 表达式 访问属性,例如

var y = {};
var x = 'foo';
y[x] = 'foo value';

在上面,x以方括号提供,以便对其进行求值,并返回字符串’foo’。由于此属性尚不存在y,因此已添加。然后为的foo属性y分配一个值’foovalue’。

一般而言,将评估方括号中的 表达式toString()调用方法。该值用作属性名称

在点属性访问方法中,不评估标识符,因此:

y.bar = 'bar value';

创建一个bar具有值的属性bar value

如果要创建数字属性,则:

y[5] = 5;

将评估5,如果发现它不是字符串,则调用(或多或少)Number(5).toString()返回字符串5,该字符串用于属性名称。然后5为其分配值,该值是一个数字。

javascript 2022/1/1 18:21:53 有285人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶