一、语法
1、遍历数组
var myArr=[‘camille‘,‘2020‘,‘vas‘,‘en‘,‘France‘]; for (var index in myArr) { console.log(myArr[index]); } /*camille 2020 vas en France */
2、遍历对象
var myOject={ name:"camille", age:"24", sex:"female", city:"shanghai", job:"frontend engineer" }; for (var key in myOject) { myObject.hasOwnProperty(key) && console.log(myOject[key]); }
for in,以任意序迭代一个对象的可枚举属性。实际是为循环enumerable对象而设计的,循环遍历对象的key。也可以循环数组,但是不推荐。因为 for in不仅遍历数组中的元素,还会遍历自定义的属性,甚至原型链上的所有可枚举属性都会被访问到。因此一般常用来遍历非数组的对象并且使用hasOwnProperty()方法去过滤掉原型链上的属性。for in 遍历属性的顺序并不确定,即输出的结果顺序与属性在对象中的顺序无关,也与属性的字母顺序无关,与其他任何顺序也无关。for in 比其他循环慢,如果明确需要迭代一个属性数量未知的对象,可以用for in循环。如果需要遍历一个数量有限的已知属性列表,使用其他循环会更快。
break跳出本次循环并执行循环体后的代码,continue结束本次循环执行下一次循环。没有return。
二、执行效率
var arr = [], arrlen = arr.length = 1000000; for(var i=0; i<arrlen; i++){ arr[i] = ‘looptest‘; }
var t1 = +new Date(); for(var item in arr){ } var t2 = +new Date(); console.log(‘for in:‘ + (t2-t1));
比其他循环慢。
时间: 2024-10-08 10:19:46