首先,一句话概括:for in是遍历(object)键名,for of是遍历(array)键值。 for...in for...in 循环只遍历可枚举属性(包括它的原型链上的可枚举属性)。像 Array和Object使用内置构造函数所创建的对象都会继承自Object.prototype和String.prototype的不可枚举属性,例如 String 的 indexOf() 方法或 Object的toString()...
for in是ES5标准,for of是ES6标准; for in是遍历对象属性,for of是遍历对象元素。 for of兼容性还不够,移动端安卓微信浏览器貌似不支持,苹果的可以;web端IE支持也不够,chrome可以。 先说结论: 推荐在循环对象属性的时候,使用for...in,在遍历数组的时候的时候使用for...of。 for...in循环出的是key,for....
另外一个区别是, 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...
简介:for in 和 for of的区别 1、for in 1.一般用于遍历对象的可枚举属性。以及对象从构造函数原型中继承的属性。对于每个不同的属性,语句都会被执行。 2.不建议使用 for in 遍历数组,因为输出的顺序是不固定的。 3.如果迭代的对象的变量值是 null 或者 undefined, for in 不执行循环体,建议在使用 for in...
区别总结 简单总结就是,for...in遍历的是数组的索引(即键名),而for...of遍历的是数组元素值。 for...in总是得到对象的key或数组、字符串的下标,并且下标为字符串(隐形转换)。 for...of总是得到对象的value或数组、字符串的值,另外还可以用于遍历Map和Set。
1、for in与for of相比 对于纯对象的遍历,使用for..in更合适; 对于数组遍历,如果不需要知道索引,for..of迭代更合适,因为还可以中断; 对于数组遍历,如果需要知道索引,则forEach()更合适; 对于其他字符串、类数组、类型数组的迭代,虽然for..in也有这方面能力,使用for..of更方便; ...
a of arr) { console.log(a);//q,c}由于for of的这个特性,他还可以实现对iterator对象的遍历,而for in就是简单的遍历了。兼容方面来说 for in是ES5标准,for of是ES6标准;for of兼容性还不够,移动端安卓(6.0以下)微信浏览器貌似不支持,苹果的可以;web端IE支持也不够,chrome可以。
for-in和for-of是JavaScript中用于遍历数组和对象的两种常见循环结构。for-in用于遍历对象的属性,可以获取到对象的键名和键值对。它适用于对象,不适用于数组。for-in会直接枚举对象的所有可枚举属性,包括不可枚举的属性。for-of则是专门为遍历数组设计的,它不仅可以获取到数组的元素,还可以获取到元素...
for...in和for...of是两种增强型循环,for...in是ES5标准,在ES6中新增了for...of的循环方式。 1.for...in for...in可以遍历对象、数组。 遍历数组: Array.prototype.method=function(){ console.log(this.length); } let arr = [1, 2, 4, 5, 7]; for (let index in arr) { console.log(ar...
在JavaScript中,`for in` 和 `for of` 是两种遍历数据结构的方法,但它们在使用场景上有所不同。单独讨论 `for in`,它主要针对普通对象进行遍历,可能以随机顺序访问其属性。然而,它不适用于数组的遍历。相比之下,`for of` 特别设计用于遍历可迭代对象,如数组或集合,能够按照对象的自然顺序遍历...