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();
浙公网安备 33010602011771号