函数

函数的声明

利用关键字自定义函数

function 方法名(){
        //方法体

} 
1.声明函数的关键字全部小写
2.函数是做某件事,函数名一般是动词
3.函数不调用自己不执行

函数表达式(匿名函数)

var fun = function(parms){
    //主体
}
fun();//调用
fun是变量名,不是函数名
将函数存在变量中

箭头函数

let get = (params) => {

}

函数的调用

函数名();

案例 利用函数计算1-100直接按的累加和

function getSum(){
    var sum = 0;
    for(var i = 1;i<=100;i++){
        sum+=i;
    }
    console.log(sum);
}
    getSum();//函数的调用

函数的参数

function 函数名(形参1,形参2){

}
函数名(实参1,实参2);

案例 求两个数的和

function getSum(num1,num2){
      console.log(num1+num2);
}
getSum(5,6);

案例 如果实参的个数超过形参,则按照形参的个数进行

function getSum(num1,num2){
  console.log(num1+num2);
}
getSum(5,6,3);//就相当于 getSum(5,6)
如果实参个数小于形参个数,多的形参为undefined,结果为Nan

函数返回值 return

1.给函数调用者返回return后面的结果
2.如果函数没有返回值,则返回undefined
function getSum(num1,num2){
      return num1+num2
}

案例1 求最大值

    function getMax(num1,num2){
        if(num1>num2){
            return num1;
        }else{
            return num2;
        }
    }
    console.log(getMax(3,4));;   

案例2 求数组最大值

    function getArrayMax(arr) {
        var max = arr[0];
        for (var i = 1; i <= arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }
        return max;
    }
    var arr = [2, 3, 4, 56, 6, 4]
    console.log(getArrayMax(arr));   

arguaments 的使用

当不确定有多少参数传递的时候,可以用arguaments来获取,arguaments是函数内置的对象。获取传递的参数
是伪数组,按照索引的方式存储。可以按照数组的方式遍历
    function f01(){
        console.log(arguments);//获取传递过来的所有实参
    }
    f01(1,2,3);
    function f01(){
        console.log(arguments);//获取传递过来的所有实参
        for(var i =0;i<arguments.length;i++){
            console.log(arguments[i]);//遍历实参
        }
    }
    f01(1,2,3);

函数声明的方式

案例:利用函数求任意个数的最大值

    function getMax() {
        var max = arguments[0];
        for (var i = 1; i <= arguments.length; i++) {
            if (max < arguments[i]) {
                max = arguments[i]
            }
        }
        return max;
    }
    var max = getMax(2, 3, 4, 653, 3, 6, 76, 3, 6, 3)
    console.log(max);   

案例:反转数组

    function reverse(params) {
        var arr = [];
        for (var i = 0; i < params.length; i++) {
            arr[arr.length] = params[params.length - i-1];
        }
        return arr;
    }
    var arr = [1,2,3,4,5,6];
    var arr= reverse(arr);
    console.log(arr);    

案例:冒泡排序

    function sort(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;
                    temp = arr[j]
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }

    var arr1 = sort([2, 3, 4, 653, 3, 6, 76, 3, 6, 3]);
    console.log(arr1);

案例 判断是否闰年

    function isRunYear(year) {
        var flag = false;
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            return !flag;
        } else {
            return flag;
        }
    }
    var flag = isRunYear(2023);
    console.log(flag);

案例 根据用户输入的年份,输出当前年份2月份的天数

    //如果是闰年 2月份是29天,如果是平年,2月份则是28天
    function backDay() {
        var year= prompt('请输入年份');
        var runDay = 29;
        var pingDay =28;
        var flag = isRunYear(year);//调用上面的方法判断是闰年还是平年
        if(flag){
            return alert('2月份是:'+runDay+'天')
        }
        return alert('2月份是:'+pingDay+'天')
    }
    backDay();
posted @ 2023-04-12 21:25  摆烂员  阅读(17)  评论(0)    收藏  举报