对于需要进行遍历操作的数据而言,我们经常会使用到两种方法: for in和for of,虽然它们两者都可以用于遍历,而这两种方法却有很大的不同点
1.for...in...遍历
1.使用for...in...遍历数组,会遍历到数组所有的可枚举属性,包括原型。
2.for...in语句可以任意顺序迭代对象的可枚举属性。(有时候遍历出的顺序是错误的)
3.for...in...遍历的是数组的索引
所以一般会使用for...in...进行对象的遍历
数组的for...in...的举例
// 遍历出属性
var arr=[1,2,3,4,5]
arr.number="数字";
Array.prototype.method=function(){
return 0
}
for (var index in arr) {
console.log(arr[index]);
}
//输出 1,2,3,4,5 ,数字,ƒ (){
// return 0
//}
对象的for...in...遍历
// 遍历出原型
var obj={
a:1,
b:2
}
Object.prototype.method=function(){
return 0
}
for (var key in obj) {
console.log(key);
}
// 输出a,b,method
2.for...of...遍历
1.相对于for...in...而言,for...of...遍历的只是数组内的元素,而不会遍历出它的属性与原型
2.for...of...可以遍历可迭代对象定义要迭代的数据。
3.for...of... 遍历的是数组元素值
var arr=[1,2,3,4,5]
arr.number="数字";
Array.prototype.method=function(){
return 0
}
for (var value of arr) {
console.log(value);
}
// 输出: 1,2,3,4,5
3.总结
1.for...in...适用于对象的遍历
2.for...of 循环可以用来遍历数组、类数组对象,字符串、Set、Map 以及 Generator 对象