Javascript学习笔记数组的遍历和长度属性

虽然数组是Javascript中的对象,但不建议在循环中使用数组遍历数组。实际上,有很多原因可以阻止我们在循环中使用数组。

因为在循环将列举在原型链中的所有属性,而唯一能阻止它使用hasownproperty确定它,这将是比一般的要慢的多回路。

遍历

遍历数组以达到最佳性能的最佳方法是使用经典的for循环。

复制代码代码如下所示:

var列表{ 1, 2, 3,4, 5,…100000000 };

对于(var i = 0,L = list.length;i < L;i++){

console.log(名单{我});

}



这里有缓存的数组长度L = list.length附加技术。

虽然属性长度是在数组本身中定义的,但是在循环的每一次迭代中仍然会有开销,尽管最新的Javascript引擎可能优化了这种情况的性能,但您不能保证您的Javascript代码始终在这个浏览器上运行。

事实上,没有缓存长度的循环比缓存长度的循环性能慢得多。

长度属性

虽然长度属性只通过吸气剂方法返回数组中的元素的数量,但它可以由set方法截断。

复制代码代码如下所示:

var { 1, 2, 3,4, 5, 6 };

foo.length = 3;

1, 2, 3

foo.length = 6;

Foo.push(4);

1, 2, 3,未定义的,未定义的,未定义的,4 }



为长度属性分配一个较小的数字将截断数组,如果赋值是一个较大的数字,数组将不会被截断。

总结

为了获得最佳性能,建议使用for循环而不是for循环,而长度属性是缓存的。

还有一个数组对象,没有方法,只有一个惟一的属性,长度。字符串对象是长度方法~