for in适合遍历对象,for of适合遍历数组。for in遍历的是数组的索引,对象的属性,以及原型链上的属性。 for of除了能够遍历真数组、字符串、ES6的Set、Map集合还能遍历伪数组(NodeList);
-for...in:由于需要遍历对象的原型链,可能导致性能较差。 -for...of:遍历可迭代对象时,性能较好。 总结: - 使用for...in循环遍历对象的可枚举属性(包括原型链上的属性)。 - 使用for...of循环遍历可迭代对象,如数组、字符串、Map、Set等。 - 在处理数组时,尽量避免使用for...in循环,以防止意外的结果和...
一句话概括:for in是遍历(object)键名,for of是遍历(array)键值——for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名。 for in 循环出的是key(并且key的类型是string),for of 循环出的是value。 for of 是es6引新引入的特性,修复了es5引入的for in 的不足。 for of 不能循环普通的对象...
* 2. 不建议使用 for in 遍历数组,因为输出的顺序是不固定的。 * 3. 如果迭代的对象的变量值是 null 或者 undefined, for in 不执行循环体,建议在使用 for in 循环之前,先检查该对象的值是不是 null 或者 undefined。 2、for of * 1. for…of 语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,...
综上:for-in 可遍历 string,object,array 类型,遍历的是下标或 key,for-of 只能遍历 string, array 类型,遍历的是 value 值。
for...in 迭代对象的属性:for...in 循环用于迭代对象的可枚举属性,包括继承的可枚举属性。在迭代过程中,它会遍历对象的所有可枚举属性名称,而不仅限于数组或类似数组的对象的索引。注意:for...in 不建议用于…
简介:js的循环中foreach、for in和for of的区别 在JavaScript 中,‘forEach’、‘for...in’和‘for...of ’是用于循环遍历数组或类数组对象的不同方式,它们有以下区别: 1. forEach: - 适用于数组和类数组对象。 - 无法使用 break或 continue跳出循环。
因数组可看作以下标为属性的对象,字符串可以被视为类似数组的对象(字符串支持通过数值索引来访问字符串中的特定字符),所以数组、字符串也可以用 for in 遍历,但不推荐,因为存在以下缺陷: 遍历顺序不确定 for…in遍历的顺序是按照属性创建的顺序,而数组的元素顺序可能会被忽略。
最后我们再使用简短的方式来总结下For…in和For…of的区别 For…in——遍历属性 For…of——遍历值 .forEach 循环 这可能是我最喜欢的一个,这仅仅是因为我非常喜欢声明式语法或通过命令式编写代码的声明性方式。 而且,尽管上面的循环语法也很好用,并且都有很好的用例,但当我们需要关注数据本身时,forEach很好用。
for...of 基于可迭代对象上的迭代器进行遍历,每个迭代得到的值取决于迭代器iterator,因此只能迭代实现了迭代器的元素 属性类型: for...in 遍历元素所有的键key。 for...of 遍历元素所有的值value。 顺序: for...in 的遍历顺序是不确定的,与对象属性的定义顺序无关。 for...of 按照元素的顺序(迭代器指定的...