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字符串中的一个子串,可以使用字符串方法replace()结合正则表达式,具体步骤如下: 将要替换掉的子串放在一个正则表达式中作为需要匹配的模式。 将要替换掉的子串放置在replace()方法的第二个参数中,这个参数可以是一个字符串或者一个函数。 可选地,在正则表达式中使用修饰符g来匹配多个子串,而不仅仅是第一个。 下面…

    JavaScript 2023年5月28日
    00
  • 前端配合后端实现Vue路由权限的方法实例

    下面我将为你详细讲解“前端配合后端实现Vue路由权限的方法实例”的完整攻略。 前言 在实际项目中,我们经常需要对系统菜单和路由进行权限控制。Vue路由权限控制是前端开发中非常常见的一种技术实现,下面我们就来介绍一下前端配合后端实现Vue路由权限的方法实例。 步骤 步骤一:在后端对菜单和路由进行权限控制 在后端实现对菜单和路由的权限控制是本次实现的核心。可以通…

    JavaScript 2023年6月11日
    00
  • js实现的页面矩阵图形变换特效

    下面我将为您详细讲解js实现的页面矩阵图形变换特效的完整攻略。 环境准备 首先,我们需要准备好开发环境。针对此项目,我们需要安装好以下两个基本的环境: HTML5页面 JavaScript解释器 其中,HTML5页面会用来展示效果,而JavaScript解释器则会在页面加载时被调用,负责实现效果的逻辑。 实现过程 在环境准备完成后,我们就可以开始着手实现这个…

    JavaScript 2023年6月11日
    00
  • 简单实现JS对dom操作封装

    实现JS对DOM操作的封装一般有如下几个步骤: 1.定义一个构造函数,用于实例化一个操作DOM的对象 2.在该构造函数的原型上,定义一系列方法,用于对DOM进行操作。比如,增加、删除、修改元素的属性、样式等 3.封装一些通用的操作DOM的方法,比如获取元素、遍历元素、判断元素类型等,方便调用者使用 4.用新增的构造函数创建一个实例对象,调用封装好的方法操作D…

    JavaScript 2023年6月10日
    00
  • JS Generator函数yield表达式示例详解

    JS Generator函数yield表达式示例详解 什么是JS Generator函数 JS Generator函数是另一种可以从函数中提供多个值的方法。Generator函数使用yield关键字来定义生成器函数体内的多个值。当调用生成器函数时,会返回一个迭代器对象,使用此对象可以使用next()方法从函数中提取这些值。 以下是JS Generator函数…

    JavaScript 2023年6月11日
    00
  • JS正则表达式验证中文字符

    当我们在开发Web应用时,经常需要验证用户输入的数据是否符合规则。JS正则表达式可以轻松地完成数据验证的任务。其中,验证中文字符是很常见的需求之一。下面,我们来详细讲解JS正则表达式验证中文字符的完整攻略。 1. JS正则表达式的基础 JS正则表达式是用于匹配字符串中字符组成模式的表达式。它通过一系列特定的字符和符号定义匹配规则。下面是一些常用的JS正则表达…

    JavaScript 2023年5月19日
    00
  • js+canvas实现两张图片合并成一张图片的方法

    首先,我们需要创建一个基础的HTML文件,并在其中添加一个canvas标签和两个img标签,用来实现两张图片的显示和合并。 <!DOCTYPE html> <html> <head> <title>JS+Canvas实现图片合并</title> <meta charset="utf-…

    JavaScript 2023年6月10日
    00
  • JS设置随机出现2个数字的实例代码

    下面是详细讲解“JS设置随机出现2个数字的实例代码”的完整攻略。 1. 需求分析 在编写代码前,我们需要先明确需求,即需要实现随机出现2个数字。 2. 代码实现 // 生成随机数 function generateRandomNumber(maxNum) { return Math.floor(Math.random() * maxNum); } // 生成…

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