let arrTest = [1, 2, 3, 4, 5, 6, 7]
// (1)测试break/return 在for of/for/for in /forEach()中效果
// 测试结果
// for of || for || forEach() || for in
// return errow errow 无效果 errow
// break yes yes errow yes
// continue yes yes errow yes
for (let el of arrTest) {
if (el == 4) {
// return 0// 会报错 不支持return
// break //效果为中断整个循环
continue //效果为中断该次循环,直接开始下一次
}
console.log(el)
}
for (let i = 0; i < arrTest.length; i++) {
if (arrTest[i] == 4) {
// return 0// 会报错 不支持return
// break //效果为中断整个循环
continue //效果为中断该次循环,直接开始下一次
}
console.log(arrTest[i])
}
arrTest.forEach(el => {
if (el == 4) {
return // 不会报错 但是不会终止循环
// break // 报错不支持break
// continue // 报错不支持continue
}
console.log(el)
});
for (let index in arrTest) {
if (arrTest[index] == 4) {
// return 0// 会报错 不支持return
// break //效果为中断整个循环
continue //效果为中断该次循环,直接开始下一次
}
console.log(arrTest[index])
}
// (2)测试函数体中是否支持return
// 结果,除了forEach() 其他循环方式都支持return中断
function test1(arr) {
for (let el of arr) {
if (el == 4) {
return "for of在函数体中支持return,会终止整个循环"
}
console.log("函数:" + el)
}
}
console.log(test1(arrTest))
function test2(arr) {
for (let index in arr) {
if (arr[index] == 4) {
return "for in在函数体中支持return,会终止整个循环"
}
console.log("函数:" + arr[index])
}
}
console.log(test2(arrTest))
// forEach()中return在函数中也不支持,没有效果
function test3(arr) {
arr.forEach(item => {
if (item == 4) return "forEach()在函数体中不支持return,会终止整个循环"
console.log("函数:" + item)
})
}
console.log(test3(arrTest))
// for
function test4(arr) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] == 4) {
return "for在函数体中支持return,会终止整个循环"
}
console.log("函数:" + arr[i])
}
}
console.log(test4(arrTest))