for…in和for…of的区别:
- 首先for…in取key,for…of取value
- 从遍历数组角度来说,for…ini便利出来的是key,for…of便利出来的是value(即数组的值)
var arr = [99,88,66,77];
for(let i in arr){
console.log(i);
}
for(let i of arr){
consoel.log(i);
}
- 从便利字符串来说同数组一样。
- 从便利对象角度来说,for…in会遍历出来的对象的key但是for…of会直接报错。
var obj = {name:"Bob",age:25};
for(var i in obj){
console.log(i)
}
for(var i of obj){
console.log(i)
}
- 如果要使用for…of遍历普通对象,需要配合Object.keys()一起使用。
var person={
name:'coco',
age:22,
locate:{
country:'China',
city:'beijing',
}
}
for(var key of Object.keys(person)){
console.log(key+": "+person[key]);
}