一、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类似