JS中for in 对比 for of 有哪些区别?

 2023-12-01 15:11:44  阅读 0

  JS中的循环语句提供了多种方式来遍历数组和对象。常用的有for in和for of循环。尽管它们都可以用于遍历数据结构,但它们之间有一些重要的区别。本文将详细介绍for in和for of循环的区别。

  1. for in循环:

  for in循环用于遍历对象的属性。它迭代给定对象的可枚举属性,并将每个属性的键(key)存储在指定的变量中。例如:

  ```

  let obj = {a: 1, b: 2, c: 3};

  for (let key in obj) {

  console.log(key); // 输出a、b、c

  }

  ```

  for in循环的特点是可以遍历对象的所有可枚举属性,包括自身的属性和继承的属性。但是它不能保证属性的遍历顺序,并且还会遍历对象的原型链上的属性。

  2. for of循环:

  for of循环用于遍历可迭代对象,例如数组、字符串、Set和Map。它迭代对象的每个元素,并将每个元素的值存储在指定的变量中。例如:

  ```

  let arr = [1, 2, 3];

  for (let value of arr) {

  console.log(value); // 输出1、2、3

  }

  ```

  for of循环的特点是可以按照元素的顺序遍历可迭代对象的元素。它只会遍历对象自身的属性,而不会遍历继承的属性。此外,它也不适用于遍历普通的对象。

  3. 区别总结:

  - for in循环用于遍历对象的属性,而for of循环用于遍历可迭代对象的元素。

  - for in循环遍历的是对象的键(key),而for of循环遍历的是对象的值(value)。

  - for in循环遍历的是对象的可枚举属性和原型链上的属性,而for of循环只遍历对象自身的属性。

  - for in循环的顺序不确定,而for of循环按照元素的顺序遍历。

  根据具体的需求,可以选择合适的循环语句来遍历数据结构。如果需要遍历对象的属性,可以使用for in循环;如果需要按照顺序遍历可迭代对象的元素,可以使用for of循环。尽管它们在功能上有所不同,但它们都是非常有用的循环语句。

标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码