【发布时间】:2020-11-17 08:06:43
【问题描述】:
我正在阅读某人在编码论坛上提交的代码。我在他的代码中遇到了类似100[0] 的东西。我预计 JavaScript 会抛出一个错误,但令我惊讶的是它是 undefined。我知道括号符号可用于对象、数组和字符串,但很奇怪它在与数字一起使用时不会抛出。
这是否类似于在 "FOO".toLowerCase() 这样的字符串文字上调用方法,其中首先将字符串强制转换为对象,然后调用 toLowerCase?有人可以向我解释这里发生了什么吗?
【问题讨论】:
-
这只是property accessor 的标准行为。这适用于任何类型。
-
是的,它与您的字符串文字示例相同。试试,例如
100["toExponential"]()。但是,代码100[0]并没有真正的意义——你不能从数字中获得数字属性。除非Number.prototype被更改。
标签: javascript indexing prototype