为什么JavaScript里面有数组?对象还不够吗?
Why are there Arrays in JavaScript? Don't Objects suffice?
我正在重新学习JavaScript。
我的导师今天告诉我,在 JavaScript、"everything is an object"。事实上,使用 for
-in
循环,您可以像遍历数组元素一样遍历对象的属性。
我现在有(又一个)幼稚的问题:如果 JavaScript 中的所有内容都是 Object
,为什么人们 "bother" 使用 Array
s?
我的第一个猜测是 Array
上肯定有一些方法在 Object
上不可用(快速而肤浅地浏览一下 MDN 似乎可以证实),并且 Array
s 可以被索引(即 myArray[i]
)(并且有一个 length
)。但这就是故事的全部吗?还是使用内置的 Array
(对象)数据类型可以获得一些性能提升?
数组是一种对象类型。 (函数、对象等也是如此)。
它们有内部计数器和推送和弹出状态等等。它们有很多用途(为一个人保留数据集合)。
如果您真的想要重新实现 kol hakavod(继续)。
虽然尝试自己重新实现一个 js 数组是一个有趣的项目。
简单地说,Array
是 Object
,但 Object
不是 Array
。其他类型也是如此,如Date
、RegExp
等
您可以去除许多本地功能的语言并且 仍然 具有完全相同的解决方案范围边界(您可以解决完全相同的一组问题),但您会重复你自己一遍又一遍地实现非常基本的对象。此外,不同的代码库会使用这些类型的不同实现,并且您会失去兼容性和互操作性。
本地实现某些类型使语言的使用更容易、更健壮、更明确并且更高效。
最重要的是,作为一个整体的语言(尤其是 JavaScript)努力遵守众所周知的实践——这使得采用语言更容易,移植现有代码更简单、更快。
我正在重新学习JavaScript。
我的导师今天告诉我,在 JavaScript、"everything is an object"。事实上,使用 for
-in
循环,您可以像遍历数组元素一样遍历对象的属性。
我现在有(又一个)幼稚的问题:如果 JavaScript 中的所有内容都是 Object
,为什么人们 "bother" 使用 Array
s?
我的第一个猜测是 Array
上肯定有一些方法在 Object
上不可用(快速而肤浅地浏览一下 MDN 似乎可以证实),并且 Array
s 可以被索引(即 myArray[i]
)(并且有一个 length
)。但这就是故事的全部吗?还是使用内置的 Array
(对象)数据类型可以获得一些性能提升?
数组是一种对象类型。 (函数、对象等也是如此)。
它们有内部计数器和推送和弹出状态等等。它们有很多用途(为一个人保留数据集合)。
如果您真的想要重新实现 kol hakavod(继续)。
虽然尝试自己重新实现一个 js 数组是一个有趣的项目。
简单地说,Array
是 Object
,但 Object
不是 Array
。其他类型也是如此,如Date
、RegExp
等
您可以去除许多本地功能的语言并且 仍然 具有完全相同的解决方案范围边界(您可以解决完全相同的一组问题),但您会重复你自己一遍又一遍地实现非常基本的对象。此外,不同的代码库会使用这些类型的不同实现,并且您会失去兼容性和互操作性。
本地实现某些类型使语言的使用更容易、更健壮、更明确并且更高效。
最重要的是,作为一个整体的语言(尤其是 JavaScript)努力遵守众所周知的实践——这使得采用语言更容易,移植现有代码更简单、更快。