猿问

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

比如说数组,我们知道


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


var arr = new Array()

arr instanceof Object//true

这么说我们对

数组的操作本质上来说就是对对象的操作,只不过Js恰好提供了一些像数组的方法。

我们给Js中数组、集合添加或减少元素,就是给对象增加或减少属性。

这样,Js中还具有一般意义上的【在数组尾部增删元素代价低,在头部增删元素代价高】的性质吗?


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


HUX布斯
浏览 433回答 2
2回答

翻过高山走不出你

“数组的操作本质上来说就是对对象的操作”这句话不够严谨啊。数组在js中虽然是以对象的形式存在,但是和一般的对象Object是不一样的,就比如数组对象会有一个length,一般的Object是没有这个属性的。所以js中的数组在内存中的状态应该和C语言中链表的形式差不多。或者说Array实际上是以数组结构为核心的对象,提供的方法帮助你直接去操作了数组的数据结构“我们给Js中数组、集合添加或减少元素,就是给对象增加或减少属性。”怎么可能是增加减少属性呢,就跟C语言一样也会去开辟空间,持有指针差不多啊。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答