當前位置:首頁 > IT技術 > 編程語言 > 正文

js數組長為什么能任意改變
2022-05-11 11:01:08

如題,JS數組中有兩種存儲形式:

快數組:在連續內存中存放數據,數組索引屬性;

慢數組:hashTable結構,一種典型的字典形式,命名屬性;

?

在V8中,直接創建數組默認的方式是快數組。

快數組長度是可變的,根據元素的增加和刪除來動態調整存儲空間大小,原因是其內部可通過擴容(push)和收縮(pop)機制來實現的。

?

快/慢數組之間的轉化:

快到慢:

1、如果快數組擴容后的容量是原來的3倍以上,這就意味著它比HashTable形式存儲占用更大的內存,因此會發生快轉慢。

2、如果快數組新增的索引與原來最大索引的差值大雨 1024,則會發生快轉慢。

?

慢轉快:

1、當慢數組的元素可存放在快數組中,且長度小于 Smi:KmaxValue ,且當前慢數組相對于快數組僅節省了少于或者等于50%的空間,則轉變快數組。

本文摘自 :https://www.cnblogs.com/

開通會員,享受整站包年服務
国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码