JS学习Day9之函数

本文介绍了函数的概念,包括其作为可复用代码块的作用,声明函数的关键字和步骤,以及调用函数、参数传递、返回值、形参与实参的关系。此外,讨论了函数封装、函数表达式、参数个数匹配、arguments的使用以及函数间的调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数的概念

  • 就是封装了一段可被重复调用执行的代码块,通过此代码可以实现大量代码的重复利用

函数的使用

  • 有两步:
    1. 声明函数
      • function 声明函数的关键字
      • 函数是做某件事,所以函数名一般是动词
      • 函数不调用,自己不执行
    2. 调用函数
      • 千万不要忘了小括号
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
            // 1. 声明函数
            /* function 函数名() {
                函数体;
            }
            */
            function sayHy() {
                console.log("你好!");
            }
            // 2. 调用函数
            /*
            函数名();
            */
            sayHy();
    </script>
</head>
<body>
    
</body>
</html>

函数的封装

  • 函数的封装是把一个或者多个功能通过函数的方式封住起来,对外之提供一个简单的函数接口

函数的参数

形参和实参

  • 形参是接受实参的

  • 函数的参数可以有,也可以没有个数不限

  • 作用:在函数内部某些值不能固定,我们可以通过参数在调用函数时传递不同的值进去

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1. 可以利用函数的参数实现函数重复不同的代码
        /*function 函数名(形参1,形参2...) {
            
        }
        */ 
        /*函数名(实参1,实参2...);*/
        // 2. 形参和实参的执行过程
        function cook(aru) {
            console.log('我要吃' + aru);
        }
        cook('西红柿炒鸡蛋');
    </script>
</head>
<body>
    
</body>
</html>

函数形参和实参个数不匹配问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function getSum(nums1,nums2) {
            console.log(nums1 + nums2);
        }
        // 1. 如果实参的个数和形参的个数一致,则正常输出结果
        getSum(1,2);
        // 2. 如果实参的个数多于形参的个数,会取到形参的个数
        getSum(1,2,3);
        // 3. 如果实参的个数多于形参的个数,多余的形参定义为undefined,得到NaN
        getSum(1);
    </script>
</head>
<body>
    
</body>
</html>
  • 注意:在JavaScript中,形参的默认值是 undefined

函数的返回值(return语句)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1. 函数的返回值格式
        /*function 函数名() {
            return 需要返回的结果;
        }
        函数名();
        */
        // 2. 代码体验
        function getResult() {
            return 666;
        }
        getResult();
        console.log(getResult());
    </script>
</head>
<body>
    
</body>
</html>

return 终止函数

  • return 之后的代码不被执行

    // 1. return 终止函数
    function getSum(num1,num2) {
        return num1 + num2;
        alert('我不执行了');
    }
    console.log(getSum(43,13));
    
  • return 只能返回一个值。如果用逗号隔开多个值,以最后一个为准

    // 2. return 只能返回一个值
    function fn(num1,num2) {
        return num1,num2;
    }
    console.log(fn(1,2));
    // 3. 我们求任意两个数的 加减乘除 结果
    function getResult(num1,num2) {
        return [num1+num2,num1-num2,num1*num2,num1/num2];
    }
    console.log(getResult(2,4));
    
  • 函数没有 return,返回undefined

  • break,continue,return 的区别

    • break:结束当前的循环体
    • continue:跳出本次循环,继续执行下次循环
    • return:不仅可以退出循环,还能够返回return语句中的值。同时还可以结束当前的函数体内的代码

arguments的使用

  • 那我们不确定有多少个参数传递的时候,可以用 arguments 来获取。在 JavaScript 中,arguments 实际上它是当前函数的一个内置对象。所以函数都内置了一个 arguments 对象,arguments 对象中存储了传递的所有实参

  • arguments展示形式是一个伪数组,因此可以进行遍历。伪数组并不是真正意义上的数组。

  • 伪数组具有以下特点:

    • 具有 length 属性
    • 按索引方式储存数据
    • 不具有数组的 push,pop 的方法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // arguments 的使用
        function fn() {
            console.log(arguments); // 里面存储了所有传递过来的实参
            console.log(arguments.length);
        }
        fn(1, 2, 3);
    </script>
</head>
<body>
    
</body>
</html>

函数可以调用另一个函数

  • 因为每个函数都是独立的代码块,用于完成特殊任务,因此经常会用到函数相互调用的情况
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function fn1() {
            console.log(22);
            fn2();
        }
        fn1();
        function fn2() {
            console.log(33);
        }
    </script>
</head>
<body>
    
</body>
</html>

函数的声明方式

  1. 利用函数关键字自定义函数

    function fn() {
        
    }
    fn();
    
  2. 函数表达式(匿名函数)

    var 变量名 = function() {
        
    }
    

    注意:

    1. fun 是变量名,不是函数名
    2. 函数表达式的声明方式跟声明变量差不多,只不过变量里面存的是值。而函数表达式里面存的是函数
    3. 函数表达式也可以进行传递参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值