優化 JavaScript 中的陣列迭代:快取長度與直接長度存取
循環數組是 JavaScript 中的基本操作。但最快的方法是什麼?傳統觀點認為,快取數組的長度可以透過避免重複計算來提高效能。然而,有些人認為現代編譯器優化了直接長度存取。
爭論:快取與直接存取
傳統上,建議的方法是快取陣列長度:
for (var i = 0, len = arr.length; i 此方法將陣列長度儲存在局部變數 len 中,以避免在循環內重複計算它。
其他人認為編譯器優化了直接長度訪問,從而使緩存變得多餘:
for (var i = 0; i 基準測試結果
為了確定最有效的方法,在各種現代瀏覽器上進行了基準測試:https://jsben.ch/wY5fo 。
結論:快取長度取得勝利
儘管存在直接長度存取的爭論,但基準測試結果表明快取數組的長度仍然是實踐中最快的方法 。這可能是由於 JavaScript 引擎所做的優化,它優先考慮清晰性而不是聰明性。
因此,在JavaScript 中循環數組的建議方法是利用帶有長度緩存的標準for 循環:
var i = 0, len = myArray.length;
while (i
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3