if 语句
do-while 语句
var i = 0;do{i++} while(i<10)console.log(i)
while 语句
for 语句
for in 语句
用于遍历数组或对象的属性 (ES5)
重点:for in 和 for of 的区别
- for in 循环对象属性 for of 遍历数组
- for in 循环出的是key , for of 循环出的是value
- for of 是ES6
- for of 不能循环普通的对象,需要通过和Object.keys() 搭配使用
var obj = {a:1,b:2,c:'undefined'}for(var i in obj){console.log(obj[i]) //i是 键名}var student = {name: 'chu',age: 22,}for (var key of Object.keys(student)) {//使用Object.keys()方法获取对象key的数组console.log(key + ": " + student[key]);}
break 和 continue
break 会立即退出循环,强制继续执行循环后面的语句
continue 也是立即退出循环,但是循环后会从循环的顶部继续执行
var num = 0;for(var i=1;i<10;i++){if(i % 5 == 0){break //4 continue //8}num ++}console.log(num)
switch 语句
switch(i){case 25:console.log("25")break;case 35:console.log("35")break;default:console.log('other')}
如何终止for 循环
- 使用try监视代码块,在需要中断的地方抛出异常。
- 官方推荐方法(替换方法):用every和some替代forEach函数。every在碰到return false的时候,中止循环。some在碰到return ture的时候,中止循环
使用 return
let arr = [1,2,3]arr.forEach((item)=>{if(item===2){return}console.log(item) //1 3})
return 并没有终止 forEach 循环,还是继续循环打印出了3
使用 try…catch 来终止循环
let arr = [1, 2, 3];try {arr.forEach((item) => {if (item === 2) {throw "循环终止";}console.log(item);});} catch (e) {console.log("e", e);}
使用其他语法
// 使用 Array.some()arr.some(item => {console.log('b: ',item)return item === 2 // 当有数组有一项满足条件时结束并返回true})// 使用 Array.ervey()arr.every(item => {console.log('c: ',item)return item !== 2 // 检查数字中是否每一项都满足条件,如果有一项不满足就结束循环并返回false})every在碰到return false的时候,中止循环。some在碰到return ture的时候,中止循环。var a = [1, 2, 3, 4, 5]a.every(item=>{console.log(item); //输出:1,2if (item === 2) {return false} else {return true}})var a = [1, 2, 3, 4, 5]a.some(item=> {console.log(item); //输出:1,2if (item === 2) {return true} else {return false}})
