1、FOR循环(效率最高)
- 优点:JavaScript最普遍的for循环,执行效率最高
- 缺点:无法遍历对象
for(let i=0;i<array.length,i++){
//operation
}
2、FOR…IN循环(效率较低)
- 优点:唯一一个能够获取对象的属性名的遍历方式
- 缺点:会将对象通过继承得到的属性一齐遍历,造成非预料的结果且效率较低
//会访问非继承的属性
for(attr in object){//attr作为属性名
//object[attr]访问值
}
//避免访问继承的属性
for(attr in object){//attr作为属性名
if(object.hasOwnProperty(attr)){
//object[attr]访问值
}
}
3、FOR…OF循环(效率较高)
- 优点:能够快速访问非继承属性值
- 缺点:需要ES6支持
for(item of object){
//item访问值
}
4、FOREACH方法(数组内置高阶方法,含义清晰)
- 优点:函数式编程,简洁,快速领会代码含义
- 缺点:无法对对象使用
array.forEach(function(item,index,array)){
//item为值
//index为索引
//array为被访问数组
};
注意:
- 在对对象进行遍历时,如不需要访问属性名选择
for...of
循环,如需访问属性名选择for...in
循环 - 在对数组进行访问时,使用
forEach
得到较好的可读性,传统的for
循环能够带来很高的性能及拓展性
虽然来自网上总结,但是通俗易懂!