Js中的数据结构真的具有高性能吗?

发布于 2022-09-06 15:48:11 字数 347 浏览 15 评论 0

比如说数组,我们知道

Array.prototype.__proto__ === Object.prototype//true

var arr = new Array()
arr instanceof Object//true

这么说我们对
数组的操作本质上来说就是对对象的操作,只不过Js恰好提供了一些像数组的方法。
我们给Js中数组、集合添加或减少元素,就是给对象增加或减少属性。
这样,Js中还具有一般意义上的【在数组尾部增删元素代价低,在头部增删元素代价高】的性质吗?

(非科班出生,只是简单的学习过C语言,感觉Js中的数据结构和C中的很不一样,对Js中的数据结构很迷茫)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

秋日私语 2022-09-13 15:48:11

js中的数组只是高阶对象,或者说,除了那几个原始数据类型外,都是对象。
数组关键的在于排序,如果在最后插入数据,那么对数组而言不需要知道长度;而如果插在首位,那么可以看成是原有的数组元素都向后移动一位。

安人多梦 2022-09-13 15:48:11

“数组的操作本质上来说就是对对象的操作”这句话不够严谨啊。

数组在js中虽然是以对象的形式存在,但是和一般的对象Object是不一样的,就比如数组对象会有一个length,一般的Object是没有这个属性的。

所以js中的数组在内存中的状态应该和C语言中链表的形式差不多。

或者说Array实际上是以数组结构为核心的对象,提供的方法帮助你直接去操作了数组的数据结构

“我们给Js中数组、集合添加或减少元素,就是给对象增加或减少属性。”怎么可能是增加减少属性呢,就跟C语言一样也会去开辟空间,持有指针差不多啊。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文