what,return竟然失效了?

1,553 阅读2分钟

先简单的说一下:return语句代表需要返回一个值,如果不需要就不需要使用return语句。都类似一个出口,return 可以结束方法体中 return后面部分代码的执行。return false 或者 return true 通常用于判断一些结果。

大多数情况下,函数经过一系列的运算处理,会有一个返回值,返回到外部需要的地方,这个值一般用return语句,也就是说,return 是返回值,不是终止函数运行。但是注意:return 表达式 ;在本函数之后的代码不再运行。注意:只在当前函数有效,不会影响其他外部函数的执行。

function inner ({
    return false;
    //  其他代码不再执行
}
function outer ({
    inner()
    //  其他代码继续执行
}

inner函数的中的return false只会结束inner函数,而不会中断outer函数代码的继续执行。
在outer函数中,false是inner函数的返回值,可以在outer函数中作为判断条件继续使用。

我们可以通过几个例子来证明:

补充一点:

报错是因为 javascript中的return是只能放在function中的,换句话说把上面放进一个function就解决了

function auto (){
  arr = [1,2,3,4];
    var num = [];
    for(var i=0;i<arr.length-1;i++){
          if(arr[i] === 2){
              return num;
            }
       num.push(arr[i])
      }
  }  
auto();
[1]

我们可以看到return在forEach和for循环的结果是不一样的,其实这就验证了return 是返回值,不是终止函数运行,