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

文章目录

  • 一、JavaScript 函数 形参 与 实参 匹配问题
    • 1、函数形参与实参不匹配问题
    • 2、形参与实参个数匹配
    • 3、实参个数 > 形参个数
    • 4、实参个数 < 形参个数
    • 5、完整代码示例





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




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


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

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


2、形参与实参个数匹配


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

        // 定义函数 有 2 个形参
        function add(num1, num2) {
            console.log(num1 + num2);
        }

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

输出结果为 3 ;

在这里插入图片描述


3、实参个数 > 形参个数


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

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

        // 定义函数 有 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、实参个数 < 形参个数


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


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

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

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

        // 定义函数 有 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 个实参, 第二个形参默认为 undefined
        add(6);

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

在这里插入图片描述


5、完整代码示例


代码示例 :

<!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 个实参, 第二个形参默认为 undefined
        add(6);
    </script>
</head>

<body>
</body>

</html>

执行结果 :

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/510507.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 设计模式系列:备忘录模式

简介 备忘录模式是一种软件设计模式&#xff0c;用于在不破坏封闭的前提下捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定…

【VTKExamples::Meshes】第三期 ClipClosedSurface

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例ClipClosedSurface,并解析接口vtkClipClosedSurface,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(…

HTML标签之表格标签和表格案例

表格标签的使用案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevic…

yolov7代码 | model.named_models

文章目录 前言1. print(model)2. print(model.named_models)2.1 print(name)2.2 print(module)2.3 print(f"{name}:: {module}") 3. hasattr(module, weight) 前言 了解model.named_models&#xff0c;为剪枝做准备。 剪枝有一些层如果你不想剪掉&#xff0c;那就用…

IP代理池赋能Python网络爬虫

文章目录 什么是IP代理池代理服务器IP代理池的作用IP代理池的构建IP代理池的管理 相关案例IP代理在爬虫中的运用IP代理在数据收集中的运用IP代理在反爬虫中的运用 结语 什么是IP代理池 IP代理池是一个存储了多个可用代理IP地址的资源池&#xff0c;用于在网络爬虫、数据采集、…

PS从入门到精通视频各类教程整理全集,包含素材、作业等(6)复发

PS从入门到精通视频各类教程整理全集&#xff0c;包含素材、作业等 最新PS以及插件合集&#xff0c;可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制&#xff0c;今天先分享到这里&#xff0c;后续持续更新 橘子老师章节9-17图像的调色 等文件 https://www.a…

网站备案进度

1.网站开通后&#xff0c;请在网站首页底部中间位置放置您的ICP备案号并链接至"https://beian.miit.gov.cn"。 并在开通之日起30日内登录全国互联网安全管理平台提交公安联网备案申请。获取《公安备案信息填写指南》&#xff0c;或者通过“公安备案助手”协助您完成申…

文件操作的详序

1.为什么使用文件&#xff1f; 如果没有文件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失了&#xff0c;等再次运行程序&#xff0c;是看不到程序的数据的&#xff0c;如果将数据进行持久化的保存…

【六 (2)机器学习-机器学习建模步骤/kaggle房价回归实战】

一、确定问题和目标&#xff1a; 1、业务需求分析&#xff1a; 与业务团队或相关利益方进行深入沟通&#xff0c;了解他们的需求和期望。 分析业务流程&#xff0c;找出可能的瓶颈、机会或挑战。 思考机器学习如何帮助解决这些问题或实现业务目标。 2、问题定义&#xff1a;…

四种IP地址的区别

动态IP、固定IP、实体IP和虚拟IP是计算机网络中常见的IP地址类型&#xff0c;它们在分配方式、稳定性、应用场景等方面存在显著的差异。下面将详细阐述这四种IP地址的区别。 首先&#xff0c;动态IP地址是一种临时分配给设备或主机的可变IP地址。每次设备连接到网络时&#xf…

4.2作业

使用模板类&#xff0c;实现顺序栈 #include <iostream> #include <iomanip>using namespace std;template <typename T>class stack{public:T *data;T top;T MAXsizeof;//操作函数stack(int buf 100); //栈的建立bool push(const T a); //出栈bool pop(); …

rhce复习1

虚拟机初始化配置 bash 1、安装系统&#xff0c;选择对应的linux版本&#xff0c;阿里云镜像站点、163镜像站点等等 2、装好系统后&#xff0c;先配置网络&#xff1a;ip地址&#xff0c;掩码&#xff0c;网关&#xff0c;dns域名解析服务器 [rootlocalhost ~]# nmtui [rootlo…

3.写一个char类型的字符数组,对该数组访问越界时抛出异常,并做处理。

#include <iostream>using namespace std;char arr[10]"12345678"; void show(int i) {if(i>10){throw int(2);}cout << arr[i] <<endl; } int main() {int i;cin >> i;try {show(i);} catch (int) {cout << "越界" <…

SSM框架学习——工厂模式、Spring核心容器与Bean

工厂模式、核心容器与Spring Bean 工厂模式 工厂模式是Java中常用的一种设计模式&#xff0c;这种类型的设计模式属于创建型模式。说白了在代码层面就是取消了new的使用。 工厂模式有三种&#xff1a; 简单工厂模式工厂方法模式抽象工厂模式 举个例子&#xff0c;我们去买…

无缝投屏技巧:怎样将Windows电脑屏幕共享到安卓手机?

使用屏幕共享技术的好处是多方面的。首先&#xff0c;它为远程协助提供了极大的便利。当用户遇到电脑操作难题时&#xff0c;技术支持人员可以远程查看用户的屏幕&#xff0c;实时指导解决问题&#xff0c;就像他们身临其境一样。其次&#xff0c;这种技术也为教育和培训带来了…

时序预测 | Python实现VMD-CNN-LSTM时间序列预测

时序预测 | Python实现VMD-CNN-LSTM时间序列预测 目录 时序预测 | Python实现VMD-CNN-LSTM时间序列预测预测效果基本介绍模型描述代码设计预测效果 基本介绍 VMD-CNN-LSTM 是一种混合深度学习模型,结合了变分模态分解(VMD)、卷积神经网络(CNN)和长短期记忆网络(LSTM)的…

C#中值类型与引用类型的存储

目录 值对象与引用对象的存储 引用对象的成员存储 值对象与引用对象的存储 数据项的类型定义了存储数据需要的内存大小及组成该类型的数据成员。类型还决定了对象在内存中的存储位置——栈或堆。 C#中类型分为两种&#xff1a;值类型和引用类型&#xff0c;这两种类型的对象…

“省钱有道”的太平鸟,如何真正“高飞”?

衣食住行产业中&#xff0c;服装品类消费弹性较大、可选属性较强&#xff0c;其发展可以显著反映当前的经济温度。 根据国家统计局数据&#xff0c;2023年1-12月&#xff0c;我国限额以上单位服装类商品零售额累计10352.9亿元&#xff0c;同比增长15.4%&#xff0c;增速比2022…

LLMs之DBRX:DBRX的简介、安装和使用方法、案例应用之详细攻略

LLMs之DBRX&#xff1a;DBRX的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2024年3月27日(美国时间)&#xff0c;DBRX是Databricks推出的一款新型开源大语言模型&#xff0c;主要特征和优势总结如下&#xff1a; >> 表现优异&#xff1a;DBRX在各类自然语…

Pixelmator Pro:专业级图像编辑,触手可及mac/win版

Pixelmator Pro是一款功能强大的图像编辑软件&#xff0c;专为Mac操作系统设计。它拥有直观的界面和丰富的工具&#xff0c;能够满足用户各种图像处理需求。 Pixelmator Pro软件获取 首先&#xff0c;Pixelmator Pro支持多种文件格式&#xff0c;包括JPEG、PNG、GIF、BMP、TIF…