[英]Predefining Array Length in Javascript
將項目推入該數組時,預定義Javascript數組的長度是否有性能提升?
例如,假設您正在執行此操作:
var item1 = "apple",
item2 = "orange",
item3 = "sports car"; // Because I said so, that's why.
var myArray = []; // Empty array with initial length of 0
myArray.push(item1);
console.log(myArray.length) // 1
myArray.push(item2);
console.log(myArray.length) // 2
myArray.push(item3);
console.log(myArray.length) // 3
在上面的代碼中,每次推送都會重新計算myArray的長度。 另外;
var item1 = "apple",
item2 = "orange",
item3 = "sports car";
var myArray = Array(3) // Assume we already know exactly how many items will be added
myArray[0] = item1;
console.log(myArray.length) // 3
myArray[1] = item2;
console.log(myArray.length) // 3
myArray[2] = item3;
console.log(myArray.length) // 3
我的問題是,當您為數組中預先存在的插槽顯式分配一個值時,該數組的length屬性仍會重新評估。 如果不是,回避該過程是否會加快陣列填充速度?
不用說,這更多是理論上的練習,而不是實際的實際問題。
根據此JSPerf ,預定義長度要快得多。
應該注意的是, new Array()
語法未完全視為最佳實踐。 如果您絕對需要壓縮性能的每一點,請考慮一下。 否則,使您和所有接觸您的代碼的開發人員都變得輕松,使用[]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.