js中,for循环里边使用return语句要放在函数中,进行终止循环,类似break & forEach中return无效问题
js
·
js中,for循环里边使用return语句要放在函数中,进行终止循环,类似break & forEach中return无效问题
1、关于return
return语句的作用是指定函数返回的值。return语句只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误!用return语句来终止一个函数的执行。如果return后面不返回值,则把值undefined赋给调用当前函数的表达式。
return语句一般用法:
-
返回函数结果:return a;
-
阻止默认事件或者阻止往下执行:return false;
2、若return在for循环中,还会执行下一次循环吗?
for(var i=0;i<6;i++){
return 4
}
可以看到浏览器报:Uncaught SyntaxError: Illegal return statement
function add(){
let list = [1,2,3,4]
for(var i=0;i<list.length;i++){
if(i === 2)return;
console.log(list[i]); // 1 2
}
}
add()
可以看到浏览器打印:1 2
这是因为一个返回是在循环体,一个是在函数体。return 语句只能出现在函数体中。
3、forEach中return无效问题及解决方法
在项目中使用forEach进行遍历,无法实现:达到某一条件,希望跳出循环,代码不继续执行。
let arrData = [1,2,3,4,5,6]
arr.forEach((item,index) => {
if(index === 4) {
return
}
})
原因:forEach()无法在所有元素都传递给调用的函数之前终止遍历
解决方法:使用for替换forEach
例如:
function add(){
let arrData = [1,2,3,4,5,6]
for(let i = 0; i < arrData .length; i ++) {
if(i === 4) {
return // 终止循环,必须写在函数中
}
}
}
add()
也可以直接使用break(不用放在函数中),就能终止循环.
1、continue-终止本次循环
for (let i = 1; i < 5; i++) {
if (i === 2) {
continue;
}
console.log(i) // 1 3 4
}
2、break-完全结束循环
for (let i = 1; i < 5; i++) {
if (i === 2) {
break;
}
console.log(i) // 1
}
3、关于for循环的终止循环:
-
return:终止循环并且退出循环所在的方法
-
break:终止循环执行循环体下面的代码
-
continue:终止当前循环,进行下一次循环
更多推荐
已为社区贡献63条内容
所有评论(0)