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循环,而长度属性是缓存的。
还有一个数组对象,没有方法,只有一个惟一的属性,长度。字符串对象是长度方法~