首頁  >  文章  >  web前端  >  `slice()` 仍然是將 NodeList 轉換為陣列的最快方法嗎?

`slice()` 仍然是將 NodeList 轉換為陣列的最快方法嗎?

DDD
DDD原創
2024-10-27 22:55:30828瀏覽

 Is `slice()` Still The Fastest Way to Convert a NodeList to an Array?

將JavaScript NodeList 轉換為數組:速度注意事項

之前關於將NodeList 轉換為數組的主題的討論聲稱使用slice()方法是最有效的方法。然而,最近的基準測試揭示了一個令人驚訝的發現。

基準觀察

在Chromium 6 上進行的實驗中,發現使用簡單的方法從NodeList 創建數組for 循環的性能比slice() 方法高出三倍以上。這個結果與先前有關 slice() 優越性的斷言相衝突。

可能的解釋

這種差異的原因可能源自於瀏覽器特定的最佳化或 JavaScript 中的差異引擎實作。在這種情況下,Chromium 引擎可能會更有效地處理 for 迴圈。

ES6 的替代解決方案

隨著 ES6 的出現,一種新的簡潔解決方案可用:Array.from() 函數。此函數可以快速輕鬆地從任何可迭代物件(包括 NodeList)建立陣列。

// nl is a NodeList
let myArray = Array.from(nl)

結論

雖然for 循環方法在某些情況下可能會提供令人驚訝的速度瀏覽器中,Array.from() 函數提供了一種現代的跨平台解決方案,用於將NodeList 轉換為陣列。

以上是`slice()` 仍然是將 NodeList 轉換為陣列的最快方法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn