在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能  HTML/ Js中的數(shù)據(jù)結(jié)構(gòu)真的具有高性能嗎?

Js中的數(shù)據(jù)結(jié)構(gòu)真的具有高性能嗎?

比如說數(shù)組,我們知道

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

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

這么說我們對
數(shù)組的操作本質(zhì)上來說就是對對象的操作,只不過Js恰好提供了一些像數(shù)組的方法。
我們給Js中數(shù)組、集合添加或減少元素,就是給對象增加或減少屬性。
這樣,Js中還具有一般意義上的【在數(shù)組尾部增刪元素代價低,在頭部增刪元素代價高】的性質(zhì)嗎?

(非科班出生,只是簡單的學(xué)習(xí)過C語言,感覺Js中的數(shù)據(jù)結(jié)構(gòu)和C中的很不一樣,對Js中的數(shù)據(jù)結(jié)構(gòu)很迷茫)

回答
編輯回答
北城荒

js中的數(shù)組只是高階對象,或者說,除了那幾個原始數(shù)據(jù)類型外,都是對象。
數(shù)組關(guān)鍵的在于排序,如果在最后插入數(shù)據(jù),那么對數(shù)組而言不需要知道長度;而如果插在首位,那么可以看成是原有的數(shù)組元素都向后移動一位。

2018年2月14日 08:56
編輯回答
嫑吢丕

“數(shù)組的操作本質(zhì)上來說就是對對象的操作”這句話不夠嚴(yán)謹(jǐn)啊。

數(shù)組在js中雖然是以對象的形式存在,但是和一般的對象Object是不一樣的,就比如數(shù)組對象會有一個length,一般的Object是沒有這個屬性的。

所以js中的數(shù)組在內(nèi)存中的狀態(tài)應(yīng)該和C語言中鏈表的形式差不多。

或者說Array實際上是以數(shù)組結(jié)構(gòu)為核心的對象,提供的方法幫助你直接去操作了數(shù)組的數(shù)據(jù)結(jié)構(gòu)

“我們給Js中數(shù)組、集合添加或減少元素,就是給對象增加或減少屬性?!痹趺纯赡苁窃黾訙p少屬性呢,就跟C語言一樣也會去開辟空間,持有指針差不多啊。

2017年6月11日 01:32