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