JavaScript 中for/of,for/in 的详细介绍

yizhihongxing

当我们需要遍历一个对象或数组的时候,可以使用 JavaScript 中的 for/of 或 for/in 循环语句。但是它们的使用方式和适用范围有所不同,本文将带你详细介绍这两种循环的语法规则和使用场景。

for/of

for/of 循环主要用于遍历可迭代对象(Iterable),例如数组、Map、Set 等。

for/of 循环语法:

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

其中,variable 是变量名,用于保存每次迭代时的值。iterable 是可迭代对象,也就是需要遍历的对象。在每一次循环,变量 variable 都将已经被分配了一个可迭代对象的下一个值。

以下是一个遍历数组的示例代码:

const myArray = [10, 20, 30, 40, 50];

for (const element of myArray) {
  console.log(element);
}

输出结果:

10
20
30
40
50

另一个示例是,遍历 Map 对象:

const myMap = new Map([
  ['name', '张三'],
  ['age', 18],
  ['gender', '男']
]);

for (const [key, value] of myMap) {
  console.log(`${key}: ${value}`);
}

输出结果:

name: 张三
age: 18
gender: 男

for/in

for/in 循环主要用于遍历对象的属性,例如一个普通对象。

for/in 循环语法:

for (variable in object) {
  // Code block to be executed
}

其中,variable 是变量名,用于保存每次迭代时的属性名称。object 是要遍历的对象。

以下是遍历对象属性的示例代码:

const person = {
  name: '张三',
  age: 18,
  gender: '男'
};

for (const key in person) {
  console.log(`${key}: ${person[key]}`);
}

输出结果:

name: 张三
age: 18
gender: 男

需要注意的是,for/in 循环也会遍历对象原型链上的属性,因此需要先使用 hasOwnProperty() 方法来判断当前属性是否为对象自身的属性。

const person = {
  name: '张三',
  age: 18,
  gender: '男'
};

person.__proto__.address = '北京市';

for (const key in person) {
  if (person.hasOwnProperty(key)) {
    console.log(`${key}: ${person[key]}`);
  }
}

输出结果:

name: 张三
age: 18
gender: 男

通过以上的例子,我们可以看出 for/of 和 for/in 循环语句的异同点。for/of 循环用于遍历可迭代对象,而 for/in 用于遍历对象的属性。需要根据具体场景来选择使用哪种循环语句。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 中for/of,for/in 的详细介绍 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript 正则表达式(笔记)

    JavaScript 正则表达式(笔记) 什么是正则表达式? 正则表达式是一种用于匹配文本规律的表达式。 在 JavaScript 中,由 RegExp 对象来支持正则表达式的相关操作。 正则表达式语法 在 JavaScript 中,我们可以使用特殊字符来创建正则表达式模式。下面介绍一些基本语法。 字符组 [] 字符组用于匹配多个字符中的任意一个。 示例: …

    JavaScript 2023年5月19日
    00
  • Javascript动画效果(1)

    针对“Javascript动画效果(1)”这个主题,以下是完整的攻略详解: 前言 在现代Web开发中,动画已成为吸引用户注意力和改善用户体验的重要组成部分之一。Javascript是Web开发中最常用的脚本语言之一,也可以轻松实现各种动画效果。在这篇文章中,我们将探讨如何利用Javascript实现动画效果。 关于动画效果 在Web开发中,实现动画效果最常见…

    JavaScript 2023年6月10日
    00
  • javascript点击才出现验证码

    下面是JavaScript点击才出现验证码的完整攻略: 1. 编写HTML页面 我们需要在HTML页面中添加一个点击事件和一个用于显示验证码的容器。可以使用以下代码: <!DOCTYPE html> <html> <head> <title>JavaScript点击才出现验证码示例</title> …

    JavaScript 2023年6月10日
    00
  • js程序中美元符号$是什么

    美元符号 $ 在 JavaScript 中代表一个函数或对象。在 jQuery 库中,$ 代表 jQuery 函数,因此 $ 变得非常常见。在许多网站和 Web 应用程序中,如果你想使用 jQuery 库中的函数,则必须首先使用 $ 变量。下面是一个示例代码片段: $(document).ready(function(){ $("button&qu…

    JavaScript 2023年6月10日
    00
  • javascript判断网页是关闭还是刷新

    要判断网页是被关闭还是被刷新,需要使用onbeforeunload事件和event.currentTarget.performance.navigation.type属性。 onbeforeunload事件会在页面关闭或者刷新时被触发,可以作为判断依据。而event.currentTarget.performance.navigation.type属性在页面…

    JavaScript 2023年6月11日
    00
  • JavaScript 中如何实现大文件并行下载

    在 JavaScript 中实现大文件并行下载的过程中,我们可以采用以下步骤: 确定文件大小并分段下载 首先我们需要确定要下载的文件的总大小,以此作为参考分段下载文件。可以使用 XMLHttpRequest 中的 content-length 属性获取文件大小。 接着我们通过 Math.ceil(totalSize / segmentSize) 得出需要分成…

    JavaScript 2023年5月27日
    00
  • Javascript判断对象是否相等实现代码

    当我们在使用JavaScript编写代码时,判断两个对象是否相等是一个非常常见的需求。但是在JavaScript中,通过比较两个对象的引用来判断它们是否相等是不可行的,因为两个具有相同属性和值的不同对象在JavaScript中被认为是不相等的。那么要实现对象相等的判断,我们需要借助一些技巧和一些知识点。 一、对象相等的实现方式 1.1 使用JSON.stri…

    JavaScript 2023年5月27日
    00
  • JavaScript弹出新窗口后向父窗口输出内容的方法

    下面是详细讲解“JavaScript弹出新窗口后向父窗口输出内容的方法”的完整攻略。 方法简介 在 JavaScript 中,我们可以通过打开一个新的窗口来向用户展示一些额外的内容或提供一些额外的功能,但在某些情况下,我们需要将这个新窗口的一些输出或处理结果返回到父窗口中。实现这个功能的方法有很多,下面介绍其中两种。 方法一:使用 window.opener…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部