• 當前位置:首頁 > 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|中文字幕亚洲无线码