13 函数

函数返回值 return
当函数执行完的时候,并不是所有的时候都要打印结果,我们希望函数给我们反馈(返回结果,然后再进行继续运算),函数可以通过返回值return来得到一个值。完整的函数有参数和返回值

function 函数名(形参1,形参2,形参3,......){
    函数体;
    return 值;
}
// 函数返回值会返回到调用处,可以通过变量来接收这个返回值
var 变量 = 函数名(实参1,实参2,实参3......);

需求:封装一个求和函数

function getSum(x,y){
    var sum = x + y;
    return sum; //返回值
}
// 定义一个变量来接收
var result = getSum(100 ,200);
console.log(result); //打印输出
console.log(result * 20); //可以继续运算

优化版

function getSum(x,y){
    return x+y; //直接返回函数体
}
var result = getSum(100,200);
console.log(result);

注:一个完整函数,必有参数和返回值。如果一个函数有返回值,那么这个函数就必须有一个return关键字并且return后面跟内容且在调用时要定义变量来接收

测试题

出现undefined的情况有几种 3种
1.变量声明了没有赋值
2.函数没有返回值,但是在调用的时候接收了,那么函数默认 的返回值就是undefined

function fun1(x,y){
    var sum = x + y;
}
var result1 = fun1(10,20);
console.log(result1); //undefined

3.函数有返回值return,但是后面没有跟内容

function fun1(x,y){
    var sum = x + y;
    return;
}
var result1 = fun1(10,20);
console.log(result1); //undefined

需求:求1-100的和

1.0

function getEverySum(){
    var sum = 0;
    for(var i = 1; i <= 100; i++){
       sum += i;
    }
    return sum;
}
var result1 = getEverySum();
console.log("1-100的和为" + result1);

2.0

function getEverySum(x,y){
    var sum = 0;
    for(var i = x; i <= y; i++){
       sum += i;
    }
    return sum;
}
var result1 = getEverySum(1,100);
console.log("1-100的和为" + result1);

需求:求1-100的偶数和

function getEvenSum(){
    var sum = 0;
    for(var i = 1; i <= 100; i++){
       if(i % 2 == 0){
         sum += i;
       }
    }
    return sum;
}
var result2 = getEvenSum();
console.log("1-100的偶数和为" + result2);

需求:求1-100的奇数和

function getOddSum(x,y){
    var sum = 0;
    for(var i = x; i <= y; i++){
       if(i % 2 != 0){
         sum += i;
       }
    }
    return sum;
}
var result3 = getOddSum(1,100);
console.log("1-100的奇数和为" + result3);

需求:求圆的面积

function getS(r){
    return Math.PI * r * r;
}
var result4 = getS(5);
console.log(result4); //25π

注:Math.PI为系统自带的数学对象

需求:求一个数字的阶乘 !

function jieCheng(num){
    var sum = 1; //存放累乘和
    for(var i = 1; i <= num ; i++){ //从1开始
       sum *= i;
    }
    var result5 = jieCheng(6);
}
console.log(result5); //720

注:return后面的代码都不会执行,执行到return函数直接结束

练习:
需求:用函数封装数组反转

function reverseArray(arr){
    for(var i = 0; i < arr.length/2; i++){
       var temp = arr[i];
       arr[i] = arr[arr.length-1-i];
       arr[arr.length-1-i] = temp;
    }
    return arr;
}
var result1 = reverseArray([10,20,30,40,50]);
console.log(result1); //50 40 30 20 10

需求:用函数封装数组冒泡排序

function sortArray(arr){
    for(var i = 0; i < arr.length-1; i++){
       for(var j = 0; j < arr.length-1-i; j++){
          if(arr[j] > arr[j + 1]){
            var temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
          }
       }
    }
    return arr;
}
var result2 = sortArray([50 40 30 20 10]);
console.log(result2); //10,20,30,40,50
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值