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

当我们需要遍历一个对象或数组的时候,可以使用 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作为一门弱类型语言,存在着许多在开发过程中容易出现的坑。在本篇攻略中,我们将重点介绍在JavaScript开发中常见的一些坑,并且提供一些实例来帮助你更好地理解这些坑及其解决方法。本攻略的主要内容包括:变量、函数、数组、对象、作用域等。 变量 在JavaScript中,变量的声明、赋值…

    JavaScript 2023年5月18日
    00
  • 二级域名或跨域共享Cookies的实现方法

    二级域名或跨域共享Cookies的实现方法指的是不同域名(例如a.example.com和b.example.com)之间,通过某种方式共享同一份cookie,使得用户在不同的域名下也能够保持登录状态等信息的一致。 实现方法主要有以下两种: 1.使用通配符域名 通配符域名是一种特殊的域名格式,其常见的形式是*.example.com,表示example.co…

    JavaScript 2023年6月11日
    00
  • JS常用正则表达式总结【经典】

    下面是对“JS常用正则表达式总结【经典】”这个话题的完整解释: 什么是正则表达式 正则表达式(Regular Expression)又称正规表示式,是对字符串操作的一种逻辑公式,就是字符串匹配的工具,是一种文本模式,包括普通字符和元字符(特殊的字符)构成。正则表达式可以用来检索、替换和匹配字符串中的字符。 常用的正则表达式 下面介绍一下常用的正则表达式及其含…

    JavaScript 2023年5月19日
    00
  • JavaScript实战(原生range和自定义特效)简单实例

    好的。首先,我们先来了解一下该攻略的整体思路和实现目标。该实例主要涉及JavaScript中range的使用和自定义特效的实现,重点是通过这两个方面的实现,让读者对JavaScript的基础语法和实践应用有更深入的了解。接下来,我将分步骤详细讲解该攻略的实现。 步骤1:设置range的初始值和绑定事件 首先需要设置range的初值和绑定事件,代码如下: &l…

    JavaScript 2023年6月10日
    00
  • 使用JavaScript检测Firefox浏览器是否启用了Firebug的代码

    要使用JavaScript检测Firefox浏览器是否启用了Firebug,可以通过以下步骤进行操作: 使用navigator.userAgent属性获取当前浏览器的信息。 var isFirefox = navigator.userAgent.indexOf("Firefox") > -1; 判断当前浏览器是否为Firefox浏览…

    JavaScript 2023年6月10日
    00
  • 使用js的replace()方法查找字符示例代码

    使用JavaScript中的replace()方法可以对字符串中的特定字符进行查找和替换。下面是使用replace()方法查找字符的攻略: 步骤1:编写要查找的字符串 首先,我们需要定义一个包含我们要查找的字符串的变量。 let str = "This is a sample string. We will use the replace() me…

    JavaScript 2023年5月28日
    00
  • Visual Studio中js调试的方法图解

    下面我将详细地讲解“Visual Studio中js调试的方法图解”的完整攻略。 一、Visual Studio中js调试的方法图解 在 Visual Studio 中,开发者可以方便地对 JavaScript 代码进行调试,它提供了丰富的调试工具和应用程序接口。下面是使用 Visual Studio 进行 JavaScript 调试的步骤: 1. 打开一个…

    JavaScript 2023年6月11日
    00
  • Javascript立即执行函数(IIFE)实例详解

    Javascript立即执行函数(IIFE)实例详解 在Javascript中,立即执行函数指的是定义完函数后立即自动调用该函数,避免了函数命名污染全局变量的问题,同时可以更好地保护函数内部的变量隐私和封装性。下面就是关于Javascript立即执行函数的详细攻略。 什么是Javascript立即执行函数 Javascript立即执行函数的定义格式如下: (…

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