[英]Indexed access vs variable in javascript
在各個地方,索引使用數組中的元素。 本能說,用指向該元素的變量替換它並使用它。 但是除了更好的可讀性/管理性之外,還有其他區別嗎?
范例1:
if (cols[i]["Type"] === 4) {
this.someFunc(cols[i]["Name"], cols[i]["Value"].VarA, cols[i]["Value"].VarB);
}
范例2:
var col = cols[i];
if (col["Type"] === 4) {
this.someFunc(col["Name"], col["Value"].VarA, col["Value"].VarB);
}
示例2將不需要執行多個數組查找,因此會稍快一些。 話雖這么說,准時制很可能會幫您解決這個問題。
在我看來,示例2更具可讀性,因此更易於維護,因此我會繼續講下去。
同樣如R3tep所述,您可以使用col.Type
和col.Value.VarA
進一步提高可讀性。
在我看來,直接通過變量引用值比通過數組元素引用值要快:
https://jsfiddle.net/cLf7k35n/
var test = 4;
var myArray = [0, 1, 2, 3, 4];
console.time("array_reference");
if (myArray[4] === 4) {
console.log(myArray[4]);
}
console.timeEnd("array_reference");
console.time("variable_reference");
if (test === 4) {
console.log(test);
}
console.timeEnd("variable_reference");
檢查控制台中的計時器。 在我制作的特定的非復雜示例中,數組引用似乎至少慢了1.2毫秒。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.