1.for…in 的特点:
返回的是遍历对象/数组的索引值,若想获取数组/对象元素,需要arr[i]或obj[i],主要是用来遍历对象
使用格式:
for(var i in obj){console.log(obj[i]};
2.for…of的特点:
直接返回数组元素的值,可以遍历所有数据类型并且能break和continue
使用格式:
for(var of str){cosole.log(i)}
3.forEach需要回调函数,形参为value,index,array
使用格式:
arr.forEach({function(value,index,array})
代码:
var str = "hello",
arr = [1, 12, 23, 34, 45],
obj = {
name: 'scott',
age: 18
};
//1.str:forEach不能遍历字符串
for (var i of str) {
console.log(i);
}
for (var i in str) {
console.log(str[i]);
}
//str.forEach(function(val){console.log(val);})//forEach不能遍历字符串
for (var i = 0; i < str.length; i++) {
console.log(str[i]);
}
//2.arr:都可以遍历,但是需注意for in是遍历其索引,for of是遍历数组元素
for (var i of arr) {
console.log(i);
}
for (var i in arr) {
console.log(arr[i]);
}
arr.forEach(function(val) {
console.log(val);
})
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
//3.obj:可以用for..in遍历
// for(var i of obj){console.log(i);}//for..of不能遍历对象
for (var i in obj) {
console.log(obj[i]);
}
// obj.forEach(function(val){console.log(val);})//forEach不能遍历对象