【JavaScript源代码】JS中for,for...in,for...of和forEach的区别和用法实例.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
JS中for,for...in,for...of和forEach的区别和用法实例 for循环 基本语法格式: for(初始化变量;条件表达式;操作表达式){ 循环体语句; } 普通for循环在Array和Object中都可以使用。for循环中可以使用return、break等来中断循环。 //遍历数组 var arr = [1,2,3,4,5]; for(var i=0;i<arr.length;i++){ console.log(arr[i]); } //遍历对 ### JavaScript中的循环结构详解 在JavaScript编程中,循环是一种非常重要的控制流程结构,它能够帮助开发者重复执行一段代码,直到满足特定的终止条件。本文主要介绍四种常用的循环结构:`for`循环、`for...in`循环、`for...of`循环以及`Array.prototype.forEach()`方法,并通过具体的示例来探讨它们之间的区别。 #### 一、for循环 `for`循环是最常见的循环结构之一,它的语法格式如下: ```javascript for (初始化变量; 条件表达式; 操作表达式) { // 循环体语句 } ``` 其中,“初始化变量”用于设置循环开始前的初始状态;“条件表达式”用于判断是否继续执行循环;“操作表达式”则是在每次循环结束后执行的操作。 **示例:** 遍历数组: ```javascript var arr = [1, 2, 3, 4, 5]; for (var i = 0; i < arr.length; i++) { console.log(arr[i]); } ``` 遍历对象: ```javascript var obj = { x0: 10, x1: 20, x2: 30 }; for (var k = 0; k < 3; k++) { console.log(obj['x' + k]); } ``` **特点:** - `for`循环可以非常灵活地控制循环过程。 - 可以在循环体内部使用`break`和`continue`等关键字来提前终止或跳过当前循环。 - 既可以遍历数组也可以遍历对象。 #### 二、forEach循环 `Array.prototype.forEach()`是数组的一个方法,它接受一个回调函数作为参数,这个回调函数会在数组的每个元素上被调用一次。 **语法格式:** ```javascript arr.forEach(function(item, index, array) { // 执行操作 }); ``` **示例:** 遍历数组: ```javascript var arr = [3, 2, 3, 9, 5]; arr.forEach(function(value, index) { console.log(value); }); ``` **特点:** - `forEach`仅适用于数组。 - 不可以在`forEach`循环中使用`break`或`return`来提前终止循环或返回函数结果。 - 回调函数提供了三个参数:当前元素、当前索引和数组本身。 #### 三、for...in循环 `for...in`循环用于遍历对象的属性。 **语法格式:** ```javascript for (var variable in object) { // 执行操作 } ``` **示例:** 遍历数组: ```javascript var arr = [1, 2, 3, 4, 5]; for (var i in arr) { console.log(arr[i]); } ``` 遍历对象: ```javascript var obj = { x0: 10, x1: 20, x2: 30 }; for (var k in obj) { console.log(obj[k]); } ``` **特点:** - `for...in`循环不仅可以遍历数组,还可以遍历对象的所有可枚举属性。 - 遍历顺序不是固定的,可能会随机。 - 除了数组元素外,还会遍历到自定义添加的属性。 #### 四、for...of循环 `for...of`循环用于遍历可迭代对象(例如数组、字符串、Map、Set等)。 **语法格式:** ```javascript for (var variable of iterable) { // 执行操作 } ``` **示例:** 遍历数组: ```javascript var arr = [3, 2, 3, 9, 5]; for (var value of arr) { console.log(value); } ``` 遍历对象(通过`Object.entries()`转换为数组): ```javascript var obj = { x0: 10, x1: 20, x2: 30 }; for (var entry of Object.entries(obj)) { console.log(entry); // 输出的是[key, value]对 } ``` **特点:** - `for...of`循环可以避免`for...in`循环的一些陷阱。 - 支持更多的可迭代对象类型。 - 支持字符串的遍历。 - 可以使用`break`和`continue`控制循环流程。 ### 总结 - **for循环**:最通用且功能强大的循环结构,可以用来遍历数组和对象。 - **forEach**:专门用于数组的循环方法,不支持`break`或`return`。 - **for...in**:主要用于遍历对象的属性,也适用于数组,但不推荐。 - **for...of**:专为可迭代对象设计,提供了一种更安全、更简洁的方式来遍历数组和其他可迭代对象。 通过上述分析可以看出,每种循环结构都有其适用场景,选择合适的循环结构可以使代码更加简洁、易读。
























- 粉丝: 1w+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- (2025)西部计划共基考试题与答案.docx
- (2025)西部计划共基试题及答案.docx
- (2025)西部计划共基试题与答案.docx
- (2025)西部计划考试题及答案.docx
- (2025)西部计划考试题与答案.docx
- (2025)西部计划面试题纲及答案.docx
- (2025)西部计划面试题纲与答案.docx
- (2025)西部计划试真题及答案.docx
- (2025)西部计划试真题与答案.docx
- (2025)戏曲曲艺知识竞赛题库及答案.docx
- (2025)戏曲曲艺知识竞赛题库与答案.docx
- 完整的商业计划书网络在线制衣平台.doc
- (2025)乡村医生考试试题库及答案.docx
- (2025)乡村医生考试试题库与答案.docx
- (2025)乡村医生考试题库含完整答案.docx
- (2025)乡村医生考试题库和完整答案.docx


