for-of和for-in的主要区别在于它们适用的对象、返回的内容以及遍历的方式。for-in用于遍历对象的可枚举属性(包括原型链上的属性),而for-of则用于遍历可迭代对象(如数组、字符串等)的元素值。以下从多个方面详细阐述它们的区别。 迭代对象不同 for-in主要用于遍历对象的可枚举...
1.for…of是作为ES6新增的遍历方式,允许遍历一个含有iterator接口的数据结构(数组、对象等)并且返回各项的值,普通的对象用for…of遍历是会报错的。 2.for...of 循环只能用来遍历数组、类数组对象,字符串、Set、Map 以及 Generator 对象 二、for...in(遍历出来的都为可枚举属性) 1.for...in 循环主要是为了遍...
区别一:for in 和 for of 都可以循环数组,for in 输出的是数组的index下标,而for of 输出的是数组的每一项的值。 const arr = [1,2,3,4] // for ... in for (const key in arr){ console.log(key) // 输出 0,1,2,3 } // for ... of for (const key of arr){ console.log(key) ...
用途不同: for…in循环用于遍历对象的属性。 for…of循环用于遍历可迭代对象(如数组,字符串,Set,Map等)的值。 遍历的内容不同: for…in会遍历对象所有的可枚举属性,包括原型链上的属性。 for…of遍历的是可迭代对象的实际值,不包括原型链上的值。 循环控制不同: for…in循环使用对象的属性名作为循环变量的值...
另外一个区别是, for..in 可以用在任何对象上,用来检查对象的属性。for..of 则主要关心可迭代对象的值,内置的对象如 Map, Set 实现了 Symbol.iterator 属性可以被访问到值。let pets = new Set(['cat','dog','hamster']);pets['specials'] = 'mammals';for(let pet in pets) { console.log(pet...
of、for、to和with的用法区别如下: 一、用法不同 1.of 用法:表示剥夺,除去,of接直接宾语,of接间接宾语,of表示人物的特性,籍贯,特性或出生等。 例句:Marina ate only one slice of bread.玛丽娜只吃了一片面包。 2.for 用法:对?来说,由于理由,原因,向,往方向,目的地。 例句:Isn't that enough for you...
for...in:遍历对象的键名(例子同上); for...of:遍历对象的键值(访问对象的Symbol.iterator属性)(例子同上); 遍历顺序 for...in:遍历顺序是不确定的,会先遍历对象的整数属性,然后的遍历顺序依赖于对象属性的插入顺序; (欲知如何保证for...in的遍历顺序,且见下篇分享 ) for...of:遍历顺序依赖于对象迭代器定...
在JavaScript中,`for in` 和 `for of` 是两种遍历数据结构的方法,但它们在使用场景上有所不同。单独讨论 `for in`,它主要针对普通对象进行遍历,可能以随机顺序访问其属性。然而,它不适用于数组的遍历。相比之下,`for of` 特别设计用于遍历可迭代对象,如数组或集合,能够按照对象的自然顺序遍历...
for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名 一个数据结构只要部署了 Symbol.iterator 属性, 就被视为具有 iterator接口, 就可以使用 for of循环。 例1这个对象,没有 Symbol.iterator这个属性,所以使用 for of会报 obj is not iterable for of 不同与 forEach, 它可以与 break、continue...