为什么JavaScript里面有数组?对象还不够吗?

Why are there Arrays in JavaScript? Don't Objects suffice?

我正在重新学习JavaScript。

我的导师今天告诉我,在 JavaScript、"everything is an object"。事实上,使用 for-in 循环,您可以像遍历数组元素一样遍历对象的属性。

我现在有(又一个)幼稚的问题:如果 JavaScript 中的所有内容都是 Object,为什么人们 "bother" 使用 Arrays?

我的第一个猜测是 Array 上肯定有一些方法在 Object 上不可用(快速而肤浅地浏览一下 MDN 似乎可以证实),并且 Array s 可以被索引(即 myArray[i])(并且有一个 length)。但这就是故事的全部吗?还是使用内置的 Array(对象)数据类型可以获得一些性能提升?

数组一种对象类型。 (函数、对象等也是如此)。

它们有内部计数器和推送和弹出状态等等。它们有很多用途(为一个人保留数据集合)。

如果您真的想要重新实现 kol hakavod(继续)。

虽然尝试自己重新实现一个 js 数组是一个有趣的项目。

简单地说,ArrayObject,但 Object 不是 Array。其他类型也是如此,如DateRegExp

您可以去除许多本地功能的语言并且 仍然 具有完全相同的解决方案范围边界(您可以解决完全相同的一组问题),但您会重复你自己一遍又一遍地实现非常基本的对象。此外,不同的代码库会使用这些类型的不同实现,并且您会失去兼容性和互操作性。

本地实现某些类型使语言的使用更容易、更健壮、更明确并且更高效。

最重要的是,作为一个整体的语言(尤其是 JavaScript)努力遵守众所周知的实践——这使得采用语言更容易,移植现有代码更简单、更快。