1、while循环
特点:先判断后循环
语法:while(条件) 语句;
2、do-while循环
特点:先循环后判断,最少执行一次循环
语法:do {语句 } while(条件)
4、for...in循环
特点:for...in循环一般用于遍历数组或者对象的属性。一般情况下,for in循环只会遍历自定义的属性,原型上默认的属性不会被遍历出来,但是如果在原型中新增属性或者方法,for in会将原型中新增的属性和方法遍历出来
语法:for(let key in obj){} key为键名, obj[key]为键值
5、map()循环
特点:map方法将数组的所有成员依次传入参数函数,然后把每次的执行结果组成一个新数组返回,不会改变原数组
语法:
当map接收的函数包含三个参数时,分别为:当前成员、当前位置和数组本身
map()循环可以接受第二个参数,用来绑定回调函数内部的this变量,将回调函数内部的this对象,指向第二个参数,间接操作这 个参数(一般为数组)
6、forEach循环
特点:用于调用数组的每个元素,并将元素传递给回调函数,forEach会改变原数组
语法:数组.forEach(item => { console.log(item); })
7、filter()过滤循环
特点:filter方法用于过滤数组成员,满足条件的成员组成一个新数组返回
语法: 数组.filter(item => item>3) filter方法的参数函数可以接收三个参数:当前成员、当前位置和整个数组 filter方法也可以接收第二个参数,用来绑定参数函数内部的this变量
8、some() every()循环遍历
特点:这两个方法返回一个布尔值,表示判断数组成员是否符合某种条件
some方法是只有一个成员返回为true,则整个some方法的返回值为true,否则为false
every方法必须必须整个数组返回都为true,才返回true,否则为false
语法: 数组.some(item => item>3); 数组.every(item => item>3);
9、reduce()和reduceRight()方法可依次处理数组的每个成员
特点:reduce()和reduceRight()方法依次处理数组的每个成员,最终累计为一个值
区别:reduce()是从左向右处理,reduceRight()是从右向左处理
第二个参数相当于设置了默认值,在处理空数组时,可避免空指针异常
10、find()方法
特点:find()方法返回通过测试(函数内判断)的数组的第一个元素的值,如果没有符合条件的元素返回undefined,有符合条件的,返回符合条件的值。函数不会执行空数组,不会改变原数组
语法:
总结: 一、map、filter、forEach循环的共同之处
1、map、filter、forEach循环中途时无法停止的,必须将所有成员遍历完
2、都可以接收第二个参数,用于绑定回调函数中的this变量,将回调函数内的this对象指向第二个参数,从而间接操作第二个参 数
二:map()循环和forEach循环的不同: forEach循环没有返回值;map,filter循环有返回值。
三:map()循环和filter()循环都会跳过空位,for和while不会