for in适合遍历对象,for of适合遍历数组。for in遍历的是数组的索引,对象的属性,以及原型链上的属性。 for of除了能够遍历真数组、字符串、ES6的Set、Map集合还能遍历伪数组(NodeList);
for…of:通常性能比for…in更好,因为它不需要遍历原型链上的属性。 示例代码演示两者的不同用法: // for...of 遍历数组constarr = [1,2,3,4];for(constelementofarr) {console.log(element);// 输出数组的每个元素}// for...in 遍历对象的属性constobj = {a:1,b:2,c:3};for(constkeyinobj) ...
所以for in更适合遍历对象,不要使用for in遍历数组。 String 类似于Array和Object,for...in和for...of用法如下,String本身没有forEach方法: String.prototype.name = 'welcome'; let str = 'hello world'; for (let key in str) { console.log(key); } output: 0 1 2 3 4 5 6 7 8 9 10 name...
for...in 循环遍历对象”自身“的”可枚举“属性(不包括Symbol类型的键)。 for...of 基于可迭代对象上的迭代器进行遍历,每个迭代得到的值取决于迭代器iterator,因此只能迭代实现了迭代器的元素 属性类型: for...in 遍历元素所有的键key。 for...of 遍历元素所有的值value。 顺序: for...in 的遍历顺序是不...
JS: for...in和for...of的区别(四颗星) 1.for in ES3中的for...in 语句以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。 for ... in是为遍历对象属性而构建的,不建议与数组一起使用,数组可以用Array.prototype.forEach()和for ... of,那么for ... in的到底有什么用呢?
for in 遍历对象的属性 for (const key in me_obj) { console.log(key); // name, age } 1. 2. 3. hobby 被设置为了不可枚举的属性,不会被遍历 for of 用于遍历可迭代数据,如字符串、数组、类数组、Set、Map 判断数据是否可迭代 通过使用 Symbol.iterator属性来判断一个数据是否是可迭代的 ...
for in 返回的是索引 用来遍历 对象多 for of 返回的是该值 用来遍历数组 多 首先for in 和 for or 都会返回一个变量:不同之处就在于这个变量的含义。 本质区别是:in返回的索引,for返回的是单一变量 for in返回的是索引index 所以 for of 返回的是遍历的每个的变量值 ...
总之,for-in循环设计之初,是给普通以字符串的值为key的对象使用的,而不是给数组用的。 4.ES6里引入了一种新的循环方法,它就是for-of循环,它既比传统的for循环简洁,同时弥补了forEach和for-in循环的短板。 1)可以避免所有 for-in 循环的陷阱 2)不同于 forEach(),可以使用 break, continue 和 return ...
1. for...in 循环出的是 `key`, for...of 循环出的是 `value` 2. for...in 循环对象 ,for...of 循环数组(推荐) 3. for...of 不能循环普通的对象,需要通过和 Object.keys() 搭配使用