day-8.3 函数的return

每个函数在执行的时候都会return一个值,可以用关键字return去设定。

当不设定的时候就会默认return一个undefined;

举例

1 <body>
2     <script>
3         var a = function (a,b){
4             var c =a+b;
5         } 
6         var b = a(3,4);
7         alert(b);  //输出undefined,不要有误区说函数里面C的值就是函数的执行返回的结果,返回的结果跟函数里面运算等式的结果是两个概念,函数返回的结果只跟return关键字有关。
8     </script>
9 </body>

JS自带的函数也是有返回值的,只是JS自带的函数一般都是功能函数,功能函数很多时候我们不去关注,但是不去关注也是存在的,比如。

1 var a = alert("haha");
2     alert(a);//弹出undefined;

 

当设定return的值时,函数将返回设定的return的值。

<body>
    <script>
        var a = function (a,b){
             var c =a+b;
             return 50; //这里设定了return的值为50
         } 
         var b = a(3,4);
         alert(b);   //弹窗50
     </script>
 </body>

也可以理解为,函数就是一个在原内存空间内新开辟的一块内存空间(作用域),这个函数在执行的时候,这个作用域里所有的语句都会执行一遍,

执行的过程和结果只在这个函数的作用域里面有效,外界要调用的时候只能通过return和闭包(这个后面再说)。

重写了return的功能函数,很常见的就是获取元素的函数

1 var a = document.getElementById("wrap");//返回了ID是wrap的节点元素。

 

函数return的常用场景

利用函数的执行返回的结果作为全局函数的判断条件。

 1 <script>
 2     var a = function (){
 3         var a = prompt("请输入a:"),
 4             b = prompt("请输入b:");
 5         if (a===b)
 6             {
 7                 return true;   
 8             }
 9         };
10         if (a())
11             {
12             alert("认证通过");
13         }else{
14             alert("认证失败");
15             }
16 </script>    

 

return也可以return整个函数

 1 <script>
 2     var a = function (a,b){
 3     alert(typeof b );
 4     return function(){
 5     alert(1);
 6         }
 7     }
 8     var b = a(2,function a(a,b){  //a执行的时候传入参数函数
 9         alert(1);
10         });
11     console.log(typeof b); //b是a执行的时候返回的函数
12     a()();    //也可以这么执行
13 </script>

 

return还有个重要的作用,当函数往下执行,执行到return语句的时候,函数就会立即结束,后面还未执行的语句也不会再执行。

1 var a = function fn (a){
2   alert(10);  
3     return ; //读到return会函数结束
4     alert(20);  //不会执行
5 a();

 

posted @ 2018-06-05 19:03  bibiguo  阅读(125)  评论(0)    收藏  举报