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,2
if (item === 2) {
return false
} else {
return true
}
})
var a = [1, 2, 3, 4, 5]
a.some(item=> {
console.log(item); //输出:1,2
if (item === 2) {
return true
} else {
return false
}
})