之前没有详细整理过break、continue、return适用场景,刚好前段时间有同事问一下,顺便在这里统一整理回顾一遍
前言
- break: 结束当前循环并跳出整个循环
- continue: 结束当前循环,执行下个循环
- return: 结束当前循环并且有返回值,执行下个循环
break和continue在循环方法里可以使用,return一般在函数里面使用
用法小结
- while :continue和break能使用 return不能使用
- do-while:continue和break能使用 return不能使用
- for :continue和break能使用 return不能使用
- for in : continue和break能使用 return不能使用
- for of : continue和break能使用 return不能使用
- switch : break能使用 continue、return不能使用
- forEach : return能使用 continue、break不能使用
- map : return能使用, continue、break不能使用
while:continue和break能使用 return不能使用
// while中使用continue
let count = 0
while(count < 10){
count++
console.log('count:', count)
continue
console.log('after continue')
}
count: 1
count: 2
count: 3
count: 4
count: 5
count: 6
count: 7
count: 8
count: 9
count: 10
// while中使用break
let count = 0
while(count < 10){
count++
console.log('count:', count)
break
console.log('after break')
}
count: 1
do-while:continue和break能使用 return不能使用
// do-while中使用continue
let i = 0;
do {
i++;
console.log(i)
continue
console.log('after continue')
} while (i < 5);
1
2
3
4
5
// do-while中使用break
let i = 0;
do {
i++;
console.log(i)
break
console.log('after break')
} while (i < 5);
1
for:continue和break能使用 return不能使用
// for中使用continue
let count = 0
for(let i=0; i<5; i++){
count++
console.log('count:', count)
continue
console.log('after continue')
}
count: 1
count: 2
count: 3
count: 4
count: 5
// for中使用break
let count = 0
for(let i=0; i<5; i++){
count++
console.log('count:', count)
break
console.log('after break')
}
count: 1
for in: continue和break能使用 return不能使用
// continue在for in中的使用
let arr = [1, 2, 3, 4, 5]
for(let index in arr) {
console.log('index:', arr[index])
continue
console.log('after continue')
}
index: 1
index: 2
index: 3
index: 4
index: 5
// break在for in中的使用
let arr = [1, 2, 3, 4, 5]
for(let index in arr) {
console.log('index:', arr[index])
break
console.log('after break')
}
index: 1
for of: continue和break能使用 return不能使用
// continue在for of中的使用
let arr = [1, 2, 3, 4, 5]
for(let key of arr) {
console.log('key:', key)
continue
console.log('after continue')
}
key: 1
key: 2
key: 3
key: 4
key: 5
// break在for of中的使用
let arr = [1, 2, 3, 4, 5]
for(let key of arr) {
console.log('key:', key)
break
console.log('after break')
}
key: 1
switch: break能使用 continue、return不能使用
// break在switch中的使用
switch(1){
case 1:
console.log(1)
break;
console.log('after break')
case 2:
console.log(2)
break;
console.log('after break')
}
1
forEach: return能使用 continue、break不能使用
// return 在 forEach中的使用
let arr = [1, 2, 3, 4, 5]
arr.forEach(item => {
console.log('item:', item)
return
console.log('after return')
})
item: 1
item: 2
item: 3
item: 4
item: 5
map: return能使用, continue、break不能使用
let arr = [1, 2, 3, 4, 5]
arr.map(item => {
console.log('item:', item)
return
console.log('after return')
})
item: 1
item: 2
item: 3
item: 4
item: 5