return终止函数执行
困惑:在一个函数中用到了for循环,并要在for循环内通过条件判断是否阻止函数执行之后的语句,突然间有点晕,在for循环中使用return,仅仅只是跳出整个for循环后执行for循环后的语句,还是跳出整个for循环并连for循环后的语句都不执行了
1.return的定义
return 语句用于终止一个函数的执行,并返回值函数的值。如果value被省略,
或在函数内没有 return 语句被执行,则函数返回undefined
2.语法:return value;
可选项 value指定返回的值。如果忽略则返回undefined.
3.测试代码
var test = function(){
for(var i = 0;i < 10;i ++){
if(i = 5){
console.log(i)
return
}
}
console.log('我是return之后的内容')
}
test()
// 5
结果:输出的是5,可见,在for循环中当满足了i = 5的条件之后,立即跳出整个for循环,并终止函数test,不再执行for循环后的语句
var a = [1,2,3,4,5,6,7]
var b = [4,9]
var compare = function(){
for(var i = 0;i < a.length;i++){
for(var j = 0;j < b.length;j++){
if(a[i] == b[j]){
console.log('相等:' + a[i])
return
}
console.log('内层for循环第'+(j+1) +'次执行')
}
console.log('外层for循环第'+(i+1) +'次执行')
}
console.log('执行return之后的语句')
}
compare()
// 内层for循环第1次执行
// 内层for循环第2次执行
// 外层for循环第1次执行
// 内层for循环第1次执行
// 内层for循环第2次执行
// 外层for循环第2次执行
// 内层for循环第1次执行
// 内层for循环第2次执行
// 外层for循环第3次执行
// 相等:4
结果:函数中嵌套了两个for循环,当满足内循环和外循环a[i] == b[j]相等的条件时,return跳出两个循环,并终止函数compare ,不再执行return之后的任何语句
var test = function(){
for(var i = 0;i < 10;i ++){
if(i = 5){
return i
}
}
}
console.log(test())
// 5
结果:输出的是5,for循环中满足条件后return i
var test = function(){
for(var i = 0;i < 10;i ++){
if(i = 5){
console.log(i)
return
}
}
}
console.log(test())
// 5
// undefined
结果:输出的是undefined,for循环中满足条件后return,没有指定返回值
||结论
在一个函数中用到了for循环,并在for循环内通过条件判断是否阻止函数执行之后的语句,满足条件的话return,结束整个for循环并终止函数往下执行(不再执行for循环后的函数语句)










网友评论