【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 个实参, 第二个形参默认为 undefinedadd(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 个实参, 第二个形参默认为 undefinedadd(6);</script>
</head><body>
</body></html>

执行结果 :

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为机试打卡 HJ102 字符统计

要机试了&#xff0c;华孝子求捞&#xff0c;功德 描述 输入一个只包含小写英文字母和数字的字符串&#xff0c;按照不同字符统计个数由多到少输出统计结果&#xff0c;如果统计的个数相同&#xff0c;则按照ASCII码由小到大排序输出。 数据范围&#xff1a;字符串长度满足 …

开发人员小张出场

小张一年前入职&#xff0c;当时毕业已经一年了&#xff0c;一年换了4份工作。最少的才呆了一周。 小张的简历很正规&#xff0c;彩色打印&#xff0c;整整5页。技能篇写的很全&#xff0c;基本上市面上的技术都写到了&#xff0c;都是精通。面试的时候&#xff0c;表现也很好&…

C语言 | Leetcode C语言题解之第6题Z字形变换

题目&#xff1a; 题解&#xff1a; char * convert(char * s, int numRows){int n strlen(s), r numRows;if (r 1 || r > n) {return s;}int t r * 2 - 2;char * ans (char *)malloc(sizeof(char) * (n 1));int pos 0;for (int i 0; i < r; i) { // 枚举矩阵的…

docker搭建DDClient

DDClient 是一个用 Perl 编写的开源客户端&#xff0c;主要用于通过动态 DNS 服务更新动态域名。它能够自动检测公网 IP 地址的变化&#xff0c;并将新的 IP 地址更新到指定的 DNS 服务商&#xff0c;以保持域名与当前 IP 地址的同步。这对于使用动态 IP 地址的用户来说非常有用…

上位机图像处理和嵌入式模块部署(qmacvisual之n点标定)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 工业场景中&#xff0c;很多时候图像是用来做测量的。虽然我们很希望载台是平的&#xff0c;摄像头是正对着拍摄物体的&#xff0c;但是运行时间长…

达梦数据库用户与权限管理

达梦数据库用户与权限管理 用户管理口令策略管理用户资源限制 权限管理一般权限特殊权限 角色管理 用户管理 达梦数据库安装后创建的内置用户&#xff1a; SYS&#xff1a;内置用户&#xff0c;不允许登录。该用户下有常用的数据字典&#xff1b;SYSDBA&#xff1a;系统管理员…

【华为OD机试】启动多任务排序(拓扑排序算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

AssetBundle在移动设备上丢失

1&#xff09;AssetBundle在移动设备上丢失 2&#xff09;Unity云渲染插件RenderStreaming&#xff0c;如何实现多用户分别有独立的操作 3&#xff09;如何在圆柱体类型的地图中编程玩家的输入 4&#xff09;Mixamo动画的根运动问题 这是第380篇UWA技术知识分享的推送&#xff…

leetcode热题100.前k个高频元素

作者&#xff1a;晓宜 &#x1f308;&#x1f308;&#x1f308; 个人简介&#xff1a;互联网大厂Java准入职&#xff0c;阿里云专家博主&#xff0c;csdn后端优质创作者&#xff0c;算法爱好者 ❤️❤️❤️ 你的关注是我前进的动力&#x1f60a; Problem: 347. 前 K 个高频元…

高效率二极管选型参数,结构原理,工艺与注意问题总结

🏡《总目录》 目录 1,概述2,工作原理2.1,正向偏置2.2,反向偏置3,结构特点3.1,材料选择3.2,结构设计3.3,掺杂工艺4,工艺流程4.1,材料准备4.2,设备准备4.3,环境准备4.4

离散化、贪心、双指针、二分、倍增、构造、位运算

八、离散化 1、离散化简介 把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。离散化是一种将数组的值域压缩,从而更加关注元素的大小关系的算法。当原数组中的数字很大、负数、小数时(大多数情况下是数字很大),难以将“元素值”表示为”数组下标“,一…

为什么mac文件拖拽不了 mac文件拖不进硬盘里 macbookpro文件无法拖进移动硬盘 Tuxera NTFS for Mac 2023绿色

如果你是一位Mac用户&#xff0c;你可能会遇到这样的问题&#xff1a;你想把Mac上的文件拖拽到其他位置&#xff0c;比如桌面、文件夹或者外接硬盘&#xff0c;但是却发现无法操作&#xff0c;这是为什么呢&#xff1f;这篇文章将为你解答为什么mac文件拖拽不了&#xff0c;以及…

WebGIS 地铁交通线网数据可视化监控平台

数字孪生技术在地铁线网的管理和运维中的应用是一个前沿且迅速发展的领域。随着物联网、大数据、云计算以及人工智能技术的发展&#xff0c;地铁线网数字孪生在智能交通和智慧城市建设中的作用日益凸显。 图扑软件基于 HTML5 的 2D、3D 图形渲染引擎&#xff0c;结合 GIS 地图&…

EFK(elasticsearch+filebeat+kibana)日志分析平台搭建

本文是记录一下EFK日志平台的搭建过程 项目背景&#xff1a; 此次搭建的日志分析平台主要是采集服务器上的java服务的log日志(输出的日志已经是json格式)&#xff0c;这些日志都已经按照不同环境输出到/home/dev /home/test1 /home/test2 目录下了&#xff0c;按照不同的应…

redis链表结构和简单动态字符串(SDS)

1.双向链表 redis中的普通链表是双向链表。通过链表节点结构体可知有全驱节点和后继节点。 1.链表节点和链表 //adlist.h typedef struct listNode {struct listNode *prev; //前驱节点struct listNode *next; //后继节点void *value; //节点值 } list…

27.ReentrantLock

1.与synchronized不同点&#xff1a; 可中断可以设置超时时间可以设置公平锁&#xff0c;公平锁就是为了解决饥饿线程&#xff0c;让线程排队&#xff0c;先进先出&#xff0c;先来的线程先执行。支持多个条件变量 2.与synchronized相同点都支持锁的可重入。 基本格式&#…

JavaScript 超详细学习思路

JavaScript 是一种轻量级的编程语言&#xff0c;它可以在网页中嵌入&#xff0c;用来实现网页的动态效果和用户交互功能。它是 Web 开发中不可或缺的一部分&#xff0c;与 HTML 和 CSS 并称为 Web 技术的三大基石。下面我会根据您的要求&#xff0c;对每个部分进行详细的讲解。…

“崖山数据库杯”深圳大学程序设计竞赛(正式赛)M题 一图秒

“崖山数据库杯”深圳大学程序设计竞赛&#xff08;正式赛&#xff09;_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com) —————— 可以去牛客看题解&#xff1a; 题解 | #暂时没想法#_牛客博客 (nowcoder.net) —————— 上面的就是题解了。…

Web CSS笔记3

一、边框弧度 使用它你就可以制作盒子边框圆角 border-radius&#xff1a;1个值四个圆角值相同2个值 第一个值为左上角与右下角&#xff0c;第二个值为右上角与左下角3个值第一个值为左上角, 第二个值为右上角和左下角&#xff0c;第三个值为右下角4个值 左上角&#xff0c;右…

大数据时代的生物信息学:挖掘生命数据,揭示生命奥秘

在当今科技日新月异的时代&#xff0c;大数据如同一座蕴藏无尽宝藏的矿山&#xff0c;而生物信息学则是那把锐利的探矿锤&#xff0c;精准有力地敲击着这座“生命之矿”&#xff0c;揭示出隐藏在其深处的生命奥秘。随着基因测序技术的飞速进步与广泛应用&#xff0c;生物医学领…