📜  for in 和 for of in js - Javascript (1)

📅  最后修改于: 2023-12-03 15:00:49.943000             🧑  作者: Mango

JS中的for...in和for...of循环

在Javascript中,for...in和for...of循环都是用来遍历数组和对象的方法。两者的语法和使用场景有所不同,本文将分别介绍它们的特点和使用方法。

for...in循环

for...in循环用于遍历对象中的属性,语法如下:

for (property in object) {
  // code block to be executed
}

其中,property表示对象的属性名,object表示被遍历的对象。每次循环都会将对象的一个属性作为property的值,执行一次循环体中的代码块。例如:

let obj  = {name: 'Tom', age: 18, gender: 'male'};
for (let prop in obj) {
  console.log(prop + ': ' + obj[prop]);
}

输出结果为:

name: Tom
age: 18
gender: male

需要注意的是,for...in循环不仅遍历对象本身的属性,还会遍历继承自原型链上的属性。

for...of循环

for...of循环用于遍历数组和其他可迭代对象中的元素,语法如下:

for (variable of iterable) {
  // code block to be executed
}

其中,variable表示循环变量,iterable表示可迭代对象(如数组、字符串、Set、Map等)。每次循环都会将可迭代对象中的一个元素作为variable的值,执行一次循环体中的代码块。例如:

let array = ['apple', 'banana', 'orange'];
for (let fruit of array) {
  console.log(fruit);
}

输出结果为:

apple
banana
orange

需要注意的是,for...of循环只能遍历元素值,无法遍历对象的属性。而且它也不会遍历继承自原型链上的元素。

总结

for...in循环和for...of循环都是Javascript中常用的遍历方法,但是它们的语法和使用场景有所不同。for...in循环用于遍历对象中的属性,可以遍历继承自原型链上的属性;for...of循环用于遍历数组和其他可迭代对象中的元素,只能遍历元素值,不能遍历对象的属性。在实际开发中,我们需要根据不同的需求选择合适的循环方式,以提高代码的可读性和性能。