javascript - JavaScript 数组索引是字符串还是整数?

标签 javascript arrays indices

我有一个关于 JavaScript 数组的一般性问题。 JavaScript 中的数组索引在内部是否作为字符串处理?

我在某处读到,因为数组在 JavaScript 中是对象,所以索引实际上是一个字符串。我对此有点困惑,很高兴得到任何解释。

最佳答案

形式上,所有属性名称都是字符串。这意味着类似数组的数字属性名称实际上与任何其他属性名称没有任何不同。

如果您检查第 6 步 in the relevant part of the spec ,您会看到在查找属性之前,属性访问器表达式总是被强制转换为字符串。无论对象是数组实例还是其他类型的对象,都会(正式地)遵循该过程。 (同样,它只需要看起来就像正在发生的那样。)

现在,在内部,JavaScript 运行时可以自由地以任何方式实现数组功能。

edit — 我曾想过使用 Number.toString 来演示数字到字符串的转换,但事实证明规范明确描述了该特定类型转换是通过内部进程进行的,而不是通过隐式转换然后调用 .toString()(出于性能原因,这可能是一件好事)。

关于javascript - JavaScript 数组索引是字符串还是整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27537677/

相关文章:

elasticsearch - 搜索查询到.percolator类型

javascript - 具有多个属性的绘制元素

c - 当我尝试编译我的 C 代码时,它不断通知我 "line 13:error:identifier expected "。我的编程涉及存储数组字符串

arrays - 在二维数组中创建一个 "path"(用于迷宫)——有什么算法思路吗?

Java-从字符串中最后第二次出现的字符中获取子字符串

c++ - 依赖非类型模板参数和可变参数模板

javascript - knockout 剑道赛事两次触发

javascript - 将对象名称和描述定义为函数调用中的变量?

javascript - 从 Contact Form 7 调用 js 函数

ruby - 当起始索引大于 (array.size -1) 时,关于 ruby​​ Array [] 方法的混淆结果