当函数执行完的时候,并不是所有时候都要把结果打印。我们期望函数给我一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西。也就是返回值。函数通过return返回一个返回值
返回值语法:
//声明一个带返回值的函数
function 函数名(形参1, 形参2, 形参…){
//函数体
return 返回值;
}
//可以通过变量来接收这个返回值
var 变量 = 函数名(实参1, 实参2, 实参3);
函数的调用结果就是返回值,因此我们可以直接对函数调用结果进行操作。
返回值详解:
如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined
如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值
如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。
推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值。
求一个数绝对值
<script>function getAbs(num){var r = num>0?num:-num;return r; //函数中有返回值console.log("aaa");}//在调用函数的时候,我们可以通过变量来接收这个返回值var result = getAbs(-5);console.log(result);</script>
获取学生成绩的等级
<script>function getScoreDegree(num){var s = "";if(num > 80){s = "优秀";}else if(num > 70){s = "良好";}else if(num > 60){s = "及格";}else{s = "不及格";}return s;//因为js有了默认处理,没有给返回值会返回undefined}var s = getScoreDegree(3);console.log(s);</script>
求5的阶乘 5!
<script>//用for循环实现function jiechen(num){var c = 1;for(var i=1;i<=num;i++){c *= i;}return c;}var s = jiechen(5);console.log(s);</script>

<script>//递归思想 在方法内部自己调用自己//求第n个数的阶乘function jiechen(num){if(num == 1){return 1;}else{//思路//我们要求1的阶乘,结果为1//我们要求2的阶乘,结果为1的阶乘*2//我们要求3的阶乘,结果为2的阶乘*3//假设num = 3//return jiechen(2) * 3//假设num = 4//return jiechen(3)*4//return jiechen(2)*3*4//return jiechen(1)*2*3*4return jiechen(num-1)*num;}}var r = jiechen(5);console.log(r);//求1!+2!+3!+....+n!var sum = 0;for(var i=1;i<=7;i++){sum += jiechen(i);}console.log(sum);</script>
求一组数中的最大值
<script>//声明函数function getMax(a){//console.log(a);//认为第0个数是最大的var max = a[0];for(var i=1;i<a.length;i++){if(max < a[i]){max = a[i];}}return max;}//调用函数var a = [13,2,16,88,23];var mx = getMax(a);console.log(mx);</script>

