for each in for in 与for of
for each in
for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分。
这将意味着存在各种浏览器的兼容性问题。for each in,对很多浏览器都不支持的。例如是不支持IE6,IE7,IE8等浏览器的。
for in是javascript 1.0 中发布的
forEach用法
var arr = [44,9,11,22,33,55,66];
arr.forEach(function(ele,index){
console.log("forEach用法\t"+arr[index]+"-----"+ele);
});
for in
for in是javascript 1.0 中发布的
for in是遍历索引 key,是ES5标准。
for in 可以遍历到对象的原型方法,如果不想遍历原型方法和属性的话,可以在循环内部判断一下,hasOwnProperty方法可以判断某属性是否是该对象的实例属性。
for...in的用法
// for in 遍历需要两个形参 ,index表示数组的下标(可以自定义),arr表示要遍历的 //数组
var arr = [44,9,11,22,33,55,66];
for(var index in arr){
console.log("for...in用法\t"+arr[index]);
}
for of
for of是遍历元素值value,是S6标准。
for of 遍历的只是数组内的元素,而不包括数组的原型属性arrCustom和索引foo.
rray.prototype.arrCustom = function(){};
let iterable = [1,2,3,4,5,6];
iterable.foo = ["hello"];
for(let i of iterable){
console.log(iterable[i]);//1,2,3,4,5,6
}
iterable.foo = ["hello"];
for(let i of iterable){
console.log(iterable[i]);//1,2,3,4,5,6
}