導航:首頁 > 使用方法 > js2019數組常用方法

js2019數組常用方法

發布時間:2024-12-10 13:03:55

1. jsfor...in循環出來的對象屬性順序到底是什麼規律

首先,對於自己的屬性排序而言,遵循了特定的規則,即如果屬性是數組索引(從0到2^32-2),則按大小排序,其餘屬性則按照字元串和符號的插入順序進行排序。

然而,對於for in循環的順序,則是一個歷史遺留問題。最初設計時並未設定具體順序,直至2019年,委員會根據當時引擎的共同行為進行標准化,順序為先自己的屬性,然後上溯原型鏈,僅包含可枚舉的字元串鍵。然而,若原型鏈中包含特殊對象,如代理,或在遍歷過程中修改屬性或原型鏈行為,則順序仍為未定義,因為這些非標准情況在引擎實現上不一致且存在各種奇怪的bug。

總的來說,for in遍歷的順序標準是對實際使用習慣的記錄,對於未定義的情況則繼續處於未定義狀態。

在自己的屬性遍歷方面,實際的排序與原始意圖略有出入。按照最初設計,應該是從0到2^53-1的整數按大小排序。但由於幾個主要引擎出於優化目的,將范圍限制在了uint32范圍內(即數組索引,實際限制為長度減1)。標准委員會試圖在標准意圖與實現之間保持平衡,但ES6的主導者退休後,引擎廠商代表傾向於避免修改實現,導致目前情況。

原始設計將整數索引視為大小排序,其他屬性按插入順序排列,主要出於對原始對象設計的理解。雖然整數或數組索引都受限於人為設定的上限,但整數索引更為合理,也更不易觸及邊界。至於性能問題,無論哪種設計,優化策略都是將屬性分類存儲,本質上無根本差異。廠商曾提出實現復雜度和內存佔用增加的理由,但在我看來,這更像是逃避責任的借口。歸根結底,設計決策更多地考慮了實現者的便利。

綜上所述,JS中for in循環和own keys的排序遵循了特定規則和歷史遺留問題,理解這些規則有助於開發者更好地利用語言特性。

閱讀全文

與js2019數組常用方法相關的資料

熱點內容
防爆膜方法與步驟 瀏覽:395
開水泡紅棗的正確方法 瀏覽:215
集體治療方法 瀏覽:588
小商場管理技巧和方法 瀏覽:294
如何用科學的方法培養優秀的孩子 瀏覽:470
你常用哪些方法 瀏覽:889
鉻鐵使用方法視頻 瀏覽:338
環形瘦腿器帶的正確鍛煉方法 瀏覽:751
5冰變成水最快的方法是什麼 瀏覽:396
尖銳疣治療好方法 瀏覽:657
默洛尼壁掛爐使用方法 瀏覽:414
一種好方法英語怎麼寫 瀏覽:841
zuzu滾輪眼霜使用方法 瀏覽:858
西瓜視頻自媒體拍攝方法 瀏覽:312
疊褲子方法小視頻 瀏覽:610
塑料標牌保養方法和步驟 瀏覽:920
常用的零件軋制方法有哪幾種 瀏覽:558
什麼中葯養生護肺的最好方法 瀏覽:953
磯竿紡車輪安裝方法 瀏覽:197
罪犯勞動保護的方法有哪些 瀏覽:434