JavaScript 循环结构与遍历方法详解

作者:纸飞机

时间:2026-10-24

浏览:214

本文系统讲解 JavaScript 中的循环控制与遍历机制。涵盖 for、while、do-while 的基础语法与执行逻辑,对比 for-in 与 for-of 在对象与数组遍历中的差异,并深入解析 break 与 continue 对循环流程的控制及潜在死循环风险,帮助开发者掌握高效且安全的代码遍历技巧。

文章目录

for 循环

for 语句包含三个关键表达式:首先声明循环变量,其次判断循环继续的条件,最后更新循环变量的值。这三个表达式之间必须使用分号(;)进行分隔。

虽然 for 循环中的三个表达式均可省略,但分隔它们的两个分号(;;)是语法强制要求,不可缺失。

for 循环的执行机制为“先判断条件,后执行循环体”,这一行为特征与 while 循环完全一致。

for 循环的各表达式支持复杂结构:第二个表达式(条件判断)可通过逻辑与(&&)或逻辑或(||)连接多个判断条件;第一和第三个表达式则可使用逗号运算符分隔多个操作。


for(var num = 1;num<10;num++){
               console.log(num);//1,2,3,4,5,6,7,8,9
              }

while 循环

while 循环括号内的表达式可以接受任意数据类型,但在执行前会自动转换为布尔值。具体的类型转换规则如下。

① Boolean 类型:true 视为真,false 视为假; ② String 类型:空字符串转换为假,所有非空字符串均转换为真; ③ Number 类型:0 转换为假,所有非零数字均转换为真; ④ null、Undefined 或 NaN:全部转换为假; ⑤ Object 类型:全部转换为真。


var num = 1;//1、声明循环变量
            
while (num<10){//2、判断循环条件;
    console.log(num);//3、执行循环体操作;
    num++;//4、更新循环变量;
}

do-while 循环

while 循环的核心特征是“先判断条件,后执行代码块”。

do-while 循环的核心特征是“先执行代码块,后判断条件”。即使初始条件不满足,do-while 循环也保证至少执行一次,因此相比 while 循环,它多执行了一次操作。


var num = 10;
            
do{
    console.log(num);//10 9 8 7 6 5 4 3 2 1 0
    num--;
    }while(num>=0);
            
   console.log(num);//-1

循环的嵌套

在嵌套循环结构中,外层循环通常用于控制行数,内层循环用于控制列数。这种嵌套机制主要用于解决多行多列的数据结构处理问题。


for(var j=1;j<9;j++){
        for(var i=0;i<j+1;i++){
            document.write("*");
        }
        document.write("<br>");
    }

遍历方法

for - in

for-in 语句专门用于遍历数组元素或对象的可枚举属性。

在 for-in 循环的每次迭代中,代码会对数组元素或对象属性执行一次指定的操作。


let obj={'name':'programmer','age':'22','height':'180'};
for(let i in obj){
    console.log(i,obj[i])
}

for - of

for...of 循环适用的范围包括数组、Set 和 Map 数据结构、某些类数组对象(如 arguments 对象、DOM NodeList 对象)、Generator 对象以及字符串。

JavaScript 原有的 for-in 循环仅能获取对象的键名,无法直接获取键值。ES6 引入的 for...of 循环则允许直接遍历并获取键值。

数组操作示例


 var arr = ['a', 'b', 'c', 'd'];

        for (let a in arr) {
          console.log(a); // 0 1 2 3
        }
        
        for (let a of arr) {
          console.log(a); // a b c d
        }

类数组对象的操作示例


        // 字符串
        var str = "hello";
        
        for (let s of str) {
          console.log(s); // h e l l o
        }
        
        // DOM NodeList对象
        let paras = document.querySelectorAll("p");
        
        for (let p of paras) {
          p.classList.add("test");
        }
        
        // arguments对象
        function printArgs() {
          for (let x of arguments) {
            console.log(x);
          }
        }
        printArgs('a', 'b');// 'a' 'b'

循环控制语句

1、break:用于跳出当前所在的循环层,并继续执行循环体之后的代码。若存在多层嵌套循环,break 仅能跳出最内层的一层循环。 2、continue:用于跳过当前迭代中剩余的代码,直接进入下一次循环。① 在 for 循环中,continue 之后执行的是循环变量的更新语句(如 i++);② 在 while 和 do-while 循环中,continue 之后执行的是循环条件的判断。因此,在使用后两种循环时,必须确保 continue 语句位于变量更新语句之后,否则跳过更新步骤将导致死循环。


 for(var i=0;i<10;i++){
        if(i == 5){
            break;
        }
        console.log(i);//0,1,2,3,4
    }

    for(var i=0;i<10;i++){
        if(i == 5){
            continue;
        }
        console.log(i);//0,1,2,3,4,6,7,8,9
    }

本文介绍了 JavaScript 中主要的循环方式及遍历方法,更多相关 JS 循环与遍历内容可参考本站往期文章或继续浏览后续内容,感谢支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章