js区分for,for in,for of,forEach的使用场景

for 循环

结构:
    for (初始化表达式1; 判断表达式2; 自增表达式3) {
	// 循环体4
    }
实例:
    for (let i = 0; i < 5; i++) {
	// 循环体逻辑
	console.log(i)
    }

for in索引遍历,主要用于循环/迭代对象属性,可以用来循环/迭代数组

对象迭代出来的是对象的属性key值,可以通过obj[key]的方式取值,也可以通过obj.key取出属性值
如果属性名或方法名,是一个变量,则使用obj[key]的语法
数组迭代出来的是数组元素
实例:
    let arr = [1,2,3,4], obj = {a: 'a', b: 'b'};
    for (val in arr) {
	console.log(val) // val为数组元素
    } 
    for (key in obj) {
	console.log(obj[key]) // obj[key],obj.key 取的都是key键所对应的值
	console.log(obj.key)
    }

 判断对象是否为数组/对象的元素/属性.
 实例:
    let arr = [1,2,3,4], obj = {a: 'a', b: 'b'};
    let result = for (1 in arr)  // => result = true
    let result = for ('c' in obj) // => result = false

for of 值遍历,用于数组的遍历,不能遍历对象属性

实例:
    let arr = [1,2,3,4]
    for (let val of arr) {
	console.log(val) // val为数组元素
    }

    for of也可以用来遍历字符串
    实例:
	let arr = 'zhangsan'
	for (let val of arr) {
	    console.log(val) // val为字符串的字符
	}

forEach 数组的遍历

用于调用数组的每个元素,并将元素传递给回调函数。
forEach() 对于空数组是不会执行回调函数的
forEach无法在所有结果返回给函数之前结束循环.
forEach无法正常的跳出循环,可以通过抛异常与异常捕获结合的方式跳出循环
return,break,continue对forEach是无效的
实例:	
    let arr = [1,2,3,4]
    arr.forEach((val, index, arr) => { // val为数值,index为索引,arr为数组
	console.log(val)
    })

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值