前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JavaScript】函数 ③ ( 形参 与 实参 匹配问题 | 实参个数 = 形参个数 | 实参个数 > 形参个数 | 实参个数 < 形参个数 )

【JavaScript】函数 ③ ( 形参 与 实参 匹配问题 | 实参个数 = 形参个数 | 实参个数 > 形参个数 | 实参个数 < 形参个数 )

作者头像
韩曙亮
发布2024-04-04 10:07:27
660
发布2024-04-04 10:07:27
举报

一、JavaScript 函数 形参 与 实参 匹配问题

1、函数形参与实参不匹配问题

在 其它语言 中 , 如 Java 语言 , 要求 函数的 形式参数 和 实际 参数 必须一一对应匹配 , 否则就会报错 ;

在 JavaScript 中 , 对 形参 和 实参 的 匹配要求比较宽松 , 即使二者 个数 不匹配 , 也不会报错 ;

2、形参与实参个数匹配

如果 实参 的个数 , 与 形参个数一致 , 则正常输出结果 ;

代码语言:javascript
复制
        // 定义函数 有 2 个形参
        function add(num1, num2) {
            console.log(num1 + num2);
        }

        // 1. 传入 2 个实参, 输出正常结果 
        add(1, 2);

输出结果为 3 ;

3、实参个数 > 形参个数

如果传入的 实参个数 大于 形参个数 , 则取 形参 个数个 实参 ;

下面的代码中 , 有 2 个形参 , 传入 3 个实参 , 此时函数只接受 前 2 个实参 , 第 3 个实参不接收 , 也就不参与函数运算 ;

代码语言:javascript
复制
        // 定义函数 有 2 个形参
        function add(num1, num2) {
            console.log(num1 + num2);
        }

        // 1. 传入 2 个实参, 输出正常结果 
        add(1, 2);

        // 2. 传入 3 个实参, 只接受前 2 哥实参
        add(3, 4, 5);

取 实参的 前 2 个进行运算 , 也就是只接受 3 和 4 , 将其相加后得到 7 , 因此最终的函数计算结果是 7 ;

4、实参个数 < 形参个数

如果 传入的 实参个数 小于 形参个数 , 那么 后面 没有实参对应的 形参 , 就被当做 声明后未赋值的变量 , 默认值就是 ?developer/article/2404653/undefined ;

下面的 add 函数中 , 定义了 2 个形参 num1和 num2 ,

但是 调用函数时 , 只传入了 1 个实参 6 ,

函数 将该实参 6 传递给 num1 形参 , num2 没有对应的值 , 就取默认值 ?developer/article/2404653/undefined ;

代码语言:javascript
复制
        // 定义函数 有 2 个形参
        function add(num1, num2) {
            console.log(num1);
            console.log(num2);
            console.log(num1 + num2);
        }

        // 1. 传入 2 个实参, 输出正常结果 
        //add(1, 2);

        // 2. 传入 3 个实参, 只接受前 2 哥实参
        //add(3, 4, 5);

        // 3. 传入 1 个实参, 第二个形参默认为 ?developer/article/2404653/undefined
        add(6);

最终的计算结果如下 , num2 形参 未找到与之对应的 实参 , 因此其取值 ?developer/article/2404653/undefined 默认值 , 如果将 6 与 ?developer/article/2404653/undefined 相加 , 得到的结果就是 NaN ( Not a Number ) 非数字值 ;

5、完整代码示例

代码示例 :

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        // JavaScript 函数

        // 定义函数 有 2 个形参
        function add(num1, num2) {

            console.log("接收到实参 num1 = " + num1 + " , num2 = " + num2);
            console.log("计算结果 num1 + num2 = " + (num1 + num2));
        }

        // 1. 形参个数 = 实参个数 , 传入 2 个实参, 输出正常结果 
        add(1, 2);

        // 2. 形参个数 < 实参个数 , 传入 3 个实参, 只接受前 2 哥实参
        add(3, 4, 5);

        // 3. 形参个数 > 实参个数 , 传入 1 个实参, 第二个形参默认为 ?developer/article/2404653/undefined
        add(6);
    </script>
</head>

<body>
</body>

</html>

执行结果 :

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、JavaScript 函数 形参 与 实参 匹配问题
    • 1、函数形参与实参不匹配问题
      • 2、形参与实参个数匹配
        • 3、实参个数 > 形参个数
          • 4、实参个数 < 形参个数
            • 5、完整代码示例
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
            http://www.vxiaotou.com