前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js for in for of 的区别

js for in for of 的区别

作者头像
用户6379025
发布2022-12-26 15:57:35
1.5K0
发布2022-12-26 15:57:35
举报
文章被收录于专栏:莫凡莫凡
区别

for…in 循环:只能获得对象的键名,不能获得键值 for…in 循环主要是为了遍历对象而生,不适用于遍历数组 for…of 循环:允许遍历获得键值 for…of 循环可以用来遍历数组、类数组对象,字符串、Set、Map 以及 Generator 对象

代码语言:javascript
复制
//对于普通对象,没有部署原生的 iterator 接口,直接使用 for...of 会报错
var obj = {
   'name': 'lin',
   'age': 12
 }
 
 for(let key of obj) {
   console.log('for of obj', key)   // VM1263:6 Uncaught TypeError: obj is not iterable
    at <anonymous>:6:17
 }
//for...in 循环不仅遍历数字键名,还会遍历手动添加的其它键,甚至包括原型链上的键。for...of 则不会这样
let arr = [1, 2, 3,]
arr.set = 'hello world'  // 手动添加的键
Array.prototype.name = 'hello hi'  // 原型链上的键
 
for(let item in arr) {
  console.log('item', item)
}
//item 0
// item 1
// item 2
// item set
// item name

for(let value of arr) {
  console.log('value', value)
}
//item 0
// item 1
// item 2


//forEach 循环无法中途跳出,break 命令或 return 命令都不能奏效
  arr.forEach(item => {
  if(item % 2 === 0) {
    break
  }
  console.log('item', item)
})

//Uncaught SyntaxError: Illegal break statement at Array.forEach (<anonymous>at <anonymous>:1:5
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档