簡體   English   中英

索引訪問與JavaScript中的變量

[英]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.Typecol.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM