一、while循环

    while循环的语法结构:

    while(限制条件){满足条件执行的循环语句块}

    while是前测试循环语句,要先检测现实条件是否被满足,被满足后才会继续执行后面的循环语句块;

    二、do. . .while循环

    do. . .while循环的语法结构:

    do{

    循环体

    } while(限制条件);

    do. . .while循环是一种后测试循环语句,他会先执行一次循环语句,然后再判断限制条件是否满足,如果不满足就终止循环,满足才会开始下一轮循环;

    三、for 循环

    for 循环也是一种前测试语句,语法为:

    for(初始值;限制条件;计数器更新){

    循环体语句

    }

    for 循环的初始值可以写多个,用逗号隔开即可,只在第一次会执行,后续循环会跳过初始值(初始值相当于是写在循环开始前);

    限制条件从每个循环开始前都会判断一次,如果存在多个限制条件,只有最后一条限制条件会起作用;

    计数器更新会在 { 限制条件→循环体语句→计数器更新 } 后进行,也就是在一次循环的最后面进行。

    四、forEach

    2.forEach的返回值为undefined,不支持break和continue等关键字跳出循环。

    主要适用于遍历数组,对给定数组的每一项作为参数执行一个函数,函数有三个参数:数组的每一项、数组的索引、数组本身

    let arr = [1, 2, 3];

    arr.forEach(function(items, index, arr) {函数体});

    console.log(arr.forEach(function(items, index, arr) {函数体})); // undefined

    五、for…of

    for…of循环相比上面几种做法,有一些显著的优点

    有着同for…in一样的简洁语法,但是没有for…in那些缺点

    for…of遍历数组很方便,不会将索引转换为字符串,但是不能遍历对象

    不同于forEach方法,它可以与break、continue和return配合使用

    提供了遍历所有数据结构的统一操作接口.

    1.for…of的基本控制结构

    // const arr = [1, 2, 3, 4, 5];

    // for (let value of arr) { //value数组项的值 arr遍历的数组对象

    // console.log(value);

    // }

    六、for…in

    for…in…数组的键名是数字,但是for…in循环是以字符串作为键名,遍历对象,对象的属性名都是字符串。

    for…in循环主要是为遍历对象而设计的,不适用于遍历数组

    for…in遍历数组和字符串时,会将数组和字符串的索引转换为字符串再进行遍历

    用法与for…of类似