最近朋友参加面试,被问到一个面试题,问输出什么?
for(var i = 1;i < 6;i++){
if(i === 4) continue
console.log(i)
}
先来回答一下这个题目:
输出的是1,2,3,5 到4的时候跳出了循环,主要原因是i等于4的时候,我们执行了continue。
通过阅读和查找相关文章,JS跳出循环主要有三个方法,continue, break,return
1,continue
菜鸟教程是这么定义的:
continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。
所以上面的例子,不输出4,我们就能够很好的理解了。
2,break
菜鸟中是这么描述的:break 语句可用于跳出循环。break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)
我们来举个例子:
for(var i = 1;i < 6;i++){
if(i === 4) break
console.log(i)
}
当i===4的时候,就跳出了循环,整个循环不再执行。如果我们在循环后还有相关的代码,会继续执行,我们来验证一下:
for(var i = 1;i < 6;i++){
if(i === 4) break
console.log(i)
}
console.log('我会继续执行')
我们看到,“我会继续执行”已经打印出来,也就是说,break跳出了当前循环,但是循环后的代码会依然继续执行。
3,return
return语句就是用于指定函数返回的值。
return语句只能出现在函数体内,出现在代码中的其他任何地方造成语法错误!
我们看一下代码:
for(var i = 1;i < 6;i++){
if(i === 4) return
console.log(i)
}
错误意思是非法捕获的查询返回语句。如果我们写在函数里面
function run(){
for(var i = 1;i < 6;i++){
if(i === 4) return
console.log(i)
}
console.log('return继续执行')
}
run()
遇到return以后,整个函数就停止执行了。