for in 和 for of 的区别
-
for in可以遍历对象,for of不能遍历对象
-
for of可以用来遍历map集合,for in不能遍历map集合
-
for in遍历数组得到的是数组的下标,for of遍历数组得到的是数组的元素
-
for in遍历键 for of遍历值 -->
for in
for-in 可以循环遍历对象,数组,字符串
- 遍历对象,访问对象属性,
- 遍历数组,访问数组索引号,
- 遍历字符串,访问字符串索引号
var obj = {
name: 'jack',
age: 20
}
let arr = [10,20,30]
let str = 'hello'
//for-in遍历对象,获取对象属性
for (var key in obj) {
console.log(`key : ${key} value: ${obj[key]}`);//遍历出所有的键值对
}
//for-in遍历数组,获取数组下标
for(let key in arr){
console.log(key); //遍历出所有元素的下标
}
//for-in遍历字符串,获取字符下标
for(let key in str){
console.log(key); //遍历出所有字符的下标
}
for of
var obj = {
name: 'jack',
age: 20
}
let arr = [10,20,30]
let str = 'hello'
let map = new Map([["姓名", "小王"],["年龄","23"]]) //一种存储数据的结构,后面学习内容
//for-of不能遍历对象
for (let v of obj) {
console.log(v); //控制台直接报错
}
//for-of遍历数组,获取数组元素
for(let v of arr){
console.log(v); //遍历出所有的元素 10 20 30
}
//for-of 遍历字符串,获取字符元素
for(let v of str){
console.log(v);//遍历出所有的字符 h e l l o
}
//for-of遍历Map集合
for(let v of map){
console.log(v); //(2) ['姓名', '小王']
//(2) ['年龄', '23']
}