js- for in 和 for of的区别

老是记错这两个区别,今天自己写个帖子记录一下。

总结:

for in 特别适合遍历 对象

for of 只能遍历 数组

1.共性

for in 和 for of都是用来遍历的属性

2.区别

  1. for in语句可遍历 数组 or 对象,得到数组下标 or 对象的key

  2. for of只能遍历数组,得到数组值(不可遍历对象)

3.举例

遍历数组

let temp =  ['2023-02-18', '2023-02-19', '2023-02-20']

//for in遍历数组,输出数组下标
for (let p in temp) {
    console.log(p);  //输出: 0 1 2
}

//for of遍历数组,输出数组值
for (let p of temp) {
    console.log(p);  //输出: 2023-02-18 2023-02-19 2023-02-20
}



遍历对象

let temp =  {
    name: '小白',
    age: 23,
    country: 'China'
}

//for in遍历对象,输出对象的key
for (let p in temp) {
   console.log(p); //输出:name age country
}

//for of不能遍历对象,会报错

遍历数组对象

let temp = [
   {name:'小白'},
   {age:24}
]
for(let item of temp) {
    console.log(item) //输出: {name:'小白'} {age:24}
    for(let p in item) {
       console.log(item[p]); //输出: 小白 24
    }
}

4.for of 特点

  • 一个数据结构只要部署了 Symbol.iterator 属性, 就被视为具有 iterator接口, 就可以使用 for of循环
  • for of 不同与 forEach, 它可以与 break、continue和return 配合使用,也就是说 for of 循环可以随时退出循环
  • for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值