【前端学习笔记】08-函数

本文详细介绍了JavaScript中的函数,包括函数的声明方式(命名函数和匿名函数)、参数(形参和实参)的概念及匹配原则,返回值的使用,以及`return`语句的注意事项。此外,还讲解了内置对象`arguments`的使用,以及函数间的相互调用。最后,通过一系列实例展示了函数在实际编程中的应用,如求和、求结果数组、找最大值等操作。
摘要由CSDN通过智能技术生成

函数

  • 概念:在JS里面可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用;虽然for循环也能实现一些简单的重复性操作,但比较有局限性,此时我们就可以使用JS中的函数
  • 函数:就是封装了一段可被重复执行的代码块,通过此代码块可以实现大量代码的重复使用
  • 因为函数都是独立的代码块,所以函数间可以相互调用

函数的使用

  • 函数的使用分为两步:声明函数调用函数
 // 1.函数的使用
        function sayHi(){
            console.log('hi~~');
        }
        sayHi();//调用函数时,必须加()  
函数的两种声明方式

1.利用函数关键字自定义函数(命名函数),语法结构如下:

    // 声明函数
        function 函数名(){
            // 函数体
        }
        // 调用函数
        函数名();

2.函数表达式,匿名函数:
图片中的参数等概念见下文
在这里插入图片描述

函数的参数

形参和实参

声明函数时,可以在函数名称的小括号中添加一些参数,这些参数被称为形参,而在调用该函数时,同样也需要传递相应的参数,这些参数被称为实参

在这里插入图片描述

  • 语法结构和代码示例:
        // 利用函数的参数实现函数重复不同的代码
        function 函数名(形参1,形参2...){

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

注意点

  • 函数的参数可以有,也可以没有,个数不限
  • 多个参数间,使用逗号隔开
  • 形参和实参的匹配:实参数=性参数,正常输出;实参数大于形参数,取到形参个数;实参数小于形参数:多余的参数定义为undefined

函数的返回值

return语句返回值

return语句:希望函数将值返回给调用者时,此时通过return语句就能实现

  • 函数的返回值格式:

在这里插入图片描述

  • 代码示例:
    //.求任意两个数的和
        function getSum(num1,num2){
            return num1 + num2;
        }
        console.log(getSum(1,2));//3
return终止函数
  • return语句之后的代码不被执行
  • return只能返回一个值。如果用逗号隔开多个值,以最后一个为准
    在这里插入图片描述
  • 当需要多个值时,可以采用数组的形式返回,如下:
// 3.求任意两个数的加减乘除结果
            function getResult(num1,num2){
                return [num1+num2,num1-num2,num1*num2,num1/num2];
            }
            var re = getResult(4,2);
            console.log(re);
return注意事项
  • 函数里有return则返回return后面的值,没有return则返回undefined
  • return和break,continue的区别:
    在这里插入图片描述

arguments的使用

  • 概念:arguments是JavaScript中当前函数的一个内置对象,arguments对象中存储了传递的所有实参;当不确定有多少个参数传递的时候,可以用arguments来获取
  • 只有函数才有arguments对象,而且每个函数都内置了arguments对象
  • arguments展示形式是一个伪数组,因此可以进行遍历;伪数组具有以下特点:
    在这里插入图片描述
  • 代码示例:
    在这里插入图片描述

函数相互调用示例

在这里插入图片描述

  • 打印结果:111 222 fn2 fn1

函数案例

  • 每小节课的代码体验和课堂案例代码
  • 若全部复制使用时,需注意每个案例分开运行,避免某些变量被重复定义
// 课堂代码体验
    //    1.利用函数求任意两个数之间的和
    var sum = 0;
    function getSum(num1,num2){
        for(var i=num1;i<=num2;i++){
            sum+=i;
        }
        console.log(sum);
    }
    getSum(1,100);

    // // 2.求任意两个数的和(用return)
        function getSum(num1,num2){
            return num1 + num2;
        }
        console.log(getSum(1,2));//3   
    
    // 3.求任意两个数的加减乘除结果(利用return)
            function getResult(num1,num2){
                return [num1+num2,num1-num2,num1*num2,num1/num2];
            }
            var re = getResult(4,2);
            console.log(re);

    // 4.利用函数求任意两个数的最大值
            function getMax(num1,num2){
                if(num1>num2){
                    return num1;
                }else{
                    return num2;
                } 
            }
            console.log(getMax(4,8));

            利用三元运算符来实现
            function getMax(num1,num2){
                return num1>num2? num1:num2;
            }
            console.log(getMax(11,25));

    // 5.利用函数求任意个数最大值:[5,2,6,78,64,104];
            var arr=[5,2,6,78,64,104];
           
            function getMax(arr){
                var max = arr[0];
                for(i=1;i<arr.length;i++){
                  if(arr[i]>max){
                    max = arr[i];
                  }
                }
                return max;
            }
            // getMax([5,2,6,78,64,104]);//实参是一个数组送过去
            // 在实际开发里面,我们经常用一个变量来接收函数的返回结果,使用更简单
            var re =  getMax([5,2,6,78,64,104]);
            console.log(re);

// 课堂案例
    
    // 案例1:利用函数翻转数组 reverse 翻转
            function reverse(arr){
                var newarr = [];
                for(var i=arr.length - 1;i>=0; i--){
                    newarr[newarr.length] = arr[i];
                }
                return newarr;
            }
            var re = reverse([2,9,8,4,6]);
            console.log(re);

    // 案例2:利用函数封装方式,对数组排序--冒泡排序
    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 = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        return arr;
    }
    var arr1 = sort([1,7,6,5,8]);
    console.log(arr1);

    // 案例3:判断闰年:输入一个年份,判断是否是闰年(能被4整除并且不能被100整除,或能被400整除)
        
        function isRun(year){
            var flag = false;
            if(year%4==0 && year%100 !=0 ||year%400==0){
                flag = true;
            }
            return flag;
        }
        console.log(isRun(2000));//true
        console.log(isRun(1999));//false

    // 案例4:用户输入年份,输出当前年份2月份的天数

        function backDay(){
            var year = prompt('请您输入年份:');
            if(isRun(year)){
                alert('当前年份是闰年,2月份有29天');
            }else{
                alert('当前年份是平年,2月份有28天');
            }

        }
        backDay(); 
        //判断闰年函数
        function isRun(year1){//此处形参名可以随意改,但要注意改变时函数体中名字也要一并更改
            var flag = false;
            if(year1%4==0 && year1%100 !=0 ||year1%400==0){
                flag = true;
            }
            return flag;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值