当函数执行完的时候,并不是所有时候都要把结果打印。我们期望函数给我一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西。也就是返回值。函数通过return返回一个返回值

返回值语法:
//声明一个带返回值的函数
function 函数名(形参1, 形参2, 形参…){
//函数体
return 返回值;
}
//可以通过变量来接收这个返回值
var 变量 = 函数名(实参1, 实参2, 实参3);
函数的调用结果就是返回值,因此我们可以直接对函数调用结果进行操作。
返回值详解: 如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined 如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined 函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。
推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值。

求一个数绝对值

  1. <script>
  2. function getAbs(num){
  3. var r = num>0?num:-num;
  4. return r; //函数中有返回值
  5. console.log("aaa");
  6. }
  7. //在调用函数的时候,我们可以通过变量来接收这个返回值
  8. var result = getAbs(-5);
  9. console.log(result);
  10. </script>

image.png

获取学生成绩的等级

  1. <script>
  2. function getScoreDegree(num){
  3. var s = "";
  4. if(num > 80){
  5. s = "优秀";
  6. }
  7. else if(num > 70){
  8. s = "良好";
  9. }
  10. else if(num > 60){
  11. s = "及格";
  12. }
  13. else{
  14. s = "不及格";
  15. }
  16. return s;
  17. //因为js有了默认处理,没有给返回值会返回undefined
  18. }
  19. var s = getScoreDegree(3);
  20. console.log(s);
  21. </script>

image.png

求5的阶乘 5!

  1. <script>
  2. //用for循环实现
  3. function jiechen(num){
  4. var c = 1;
  5. for(var i=1;i<=num;i++){
  6. c *= i;
  7. }
  8. return c;
  9. }
  10. var s = jiechen(5);
  11. console.log(s);
  12. </script>

image.png

  1. <script>
  2. //递归思想 在方法内部自己调用自己
  3. //求第n个数的阶乘
  4. function jiechen(num){
  5. if(num == 1){
  6. return 1;
  7. }
  8. else{
  9. //思路
  10. //我们要求1的阶乘,结果为1
  11. //我们要求2的阶乘,结果为1的阶乘*2
  12. //我们要求3的阶乘,结果为2的阶乘*3
  13. //假设num = 3
  14. //return jiechen(2) * 3
  15. //假设num = 4
  16. //return jiechen(3)*4
  17. //return jiechen(2)*3*4
  18. //return jiechen(1)*2*3*4
  19. return jiechen(num-1)*num;
  20. }
  21. }
  22. var r = jiechen(5);
  23. console.log(r);
  24. //求1!+2!+3!+....+n!
  25. var sum = 0;
  26. for(var i=1;i<=7;i++){
  27. sum += jiechen(i);
  28. }
  29. console.log(sum);
  30. </script>

image.png

求一组数中的最大值

  1. <script>
  2. //声明函数
  3. function getMax(a){
  4. //console.log(a);
  5. //认为第0个数是最大的
  6. var max = a[0];
  7. for(var i=1;i<a.length;i++){
  8. if(max < a[i]){
  9. max = a[i];
  10. }
  11. }
  12. return max;
  13. }
  14. //调用函数
  15. var a = [13,2,16,88,23];
  16. var mx = getMax(a);
  17. console.log(mx);
  18. </script>

image.png