在平时工作中大家常用的肯定是forEach、map等来循环数组,通过Object.keys().forEach 来循环对象。
缺点: 但是
forEach、map是无法中断循环的,除非使用try...catch来抛出异常,强制使forEach跳出循环
这里介绍两个万能的循环方法for-of 、for-in
不同点:
for in在这里插入代码片 遍历的是数组的索引(即键名),而for of遍历的是数组元素值
for in总是得到对象的key或数组、字符串的下标
for of总是得到对象的value或数组、字符串的值
相同点:
都可以使用
break、continue和return语句
// for in
var obj = {a:1, b:2, c:3}
for (let key in obj) {
console.log(key)
}
// a b c
//for of
const array1 = ['a', 'b', 'c']
for (const val of array1) {
console.log(val)
}
// a b c
性能比较
- for 性能最好,建议使用let 关键字声明变量,块级作用域使用完会得到释放
- forEach 函数式编程,内部实现每次循环会重新调用函数,
- for of 可以循环所用存在Symbol.iterator 接口的对象、数组
- for in 性能最差,会循环原型链中所有除Symbol 的属性。
本文探讨了JavaScript中常用的数组和对象循环方法,如forEach、map、for-of和for-in。虽然forEach和map在处理数组时方便,但无法中断循环。相比之下,for-of和for-in提供了更多灵活性,支持中断,并分别遍历元素值和索引。性能方面,for表现最佳,for-of次之,for-in最差,且会遍历原型链。在实际开发中,应根据需求选择合适的循环方式。
3783

被折叠的 条评论
为什么被折叠?



