【JavaScript】函数 ⑥ ( 使用 arguments 获取所有实参 | arguments 内置对象 | 伪数组概念 )

文章目录

  • 一、使用 arguments 获取所有实参
    • 1、arguments 内置对象
    • 2、伪数组概念
    • 3、arguments 实参遍历
    • 4、arguments 代码示例 - 基本使用
    • 5、arguments 代码示例 - 遍历实参





一、使用 arguments 获取所有实参




1、arguments 内置对象


在 定义 JavaScript 函数 时 , 有时 不确定 形参的个数 , 形参写少了不够用 , 写多了又很浪费 , 这里 推荐使用 arguments 内置参数对象 ;


在 JavaScript 的 每个函数 的 内部都可以访问 内置的 arguments 对象 ,

该对象中 包含了 调用者 传递给函数的所有 实参 ,

即使 在 函数 形参 中没有明确定义 的 参数 , 仍然可以通过 arguments 内置参数对象 进行获取 ;


2、伪数组概念


函数内部的 arguments 对象 是一个 " 伪数组 " , 其并不是真正的数组 , 其有如下 3 个特点 :

  • 有 length 属性 : 可以 获取 元素 个数 ;
  • 索引存储 : 在 arguments 对象中的元素 , 是 按照索引存储的 , 可以通过索引值获取元素值 ;
  • 没有数组方法 : 无法使用数组的 pop() / push() 等函数 ;

3、arguments 实参遍历


arguments 伪数组 对象 中的 元素个数 , 可以使用 arguments.length 属性获取 ,

同时 也可以 使用 索引下标 访问 arguments 中的 实参 ;


在下面定义的函数中 , 遍历 arguments 内置伪数组对象 代码示例如下 :

        // 定义函数function add(num1, num2) {// 遍历实参for (var i = 0; i < arguments.length; i++) {console.log(arguments[i]);}}

4、arguments 代码示例 - 基本使用


在下面的代码中 , 第一次传入 1, 2 实参 , 将 arguments 参数打印出来 , 可以将这两个值打印出来 , 在 浏览器 命令行中 可展开查看这两个值 ;

第二次 传入 3, 4, 5, 6, 7, 8, 9, 10 值 , 也可以在浏览器中查看传入的 8 个值 ;

代码示例 :

<!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 函数// 定义函数function add(num1, num2) {// 打印所有的实参console.log(arguments);// 返回返回值return num1 + num2;}// 函数有返回值var ret = add(1, 2);console.log("函数返回值 : " + ret);ret = add(3, 4, 5, 6, 7, 8, 9, 10);console.log("函数返回值 : " + ret);</script>
</head><body>
</body></html>

执行结果 :

在这里插入图片描述


5、arguments 代码示例 - 遍历实参


代码示例 :

<!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 函数// 定义函数function add(num1, num2) {// 打印所有的实参console.log(arguments);// 遍历实参for (var i = 0; i < arguments.length; i++) {console.log(arguments[i]);}// 返回返回值return num1 + num2;}ret = add(3, 4, 5, 6, 7, 8, 9, 10);console.log("函数返回值 : " + ret);</script>
</head><body>
</body></html>

执行结果 :
在这里插入图片描述

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

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

相关文章

工业设备远程控制

随着科技的飞速发展和工业4.0的深入实施&#xff0c;远程控制技术在工业领域的应用变得日益重要。HiWoo Box网关作为连接工业设备与远程控制中心的桥梁&#xff0c;凭借其卓越的性能和稳定性&#xff0c;为工业设备远程控制提供了强大的支持。 一、工业设备远程控制的意义 工…

Rust所有权和Move关键字使用和含义讲解,以及Arc和Mutex使用

Rust 所有权规则 一个值只能被一个变量所拥有&#xff0c;这个变量被称为所有者。 一个值同一时刻只能有一个所有者&#xff0c;也就是说不能有两个变量拥有相同的值。所以对应变量赋值、参数传递、函数返回等行为&#xff0c;旧的所有者会把值的所有权转移给新的所有者&#…

后疫情时代CS保研沉思录暨2023年个人保研经验贴

个人情况 正如古话所说&#xff0c;最适合你的才是最好的。因此这里先贴上个人基本情况&#xff0c;用作参考。 如果你的个人情况与我相近&#xff0c;则有更强的参考作用。如果情况相差较大&#xff0c;也可以姑且引为例子来研究。 学校层次&#xff1a;中流至末流211 专业…

R语言中的常用数据结构

目录 R对象的基本类型 R对象的属性 R的数据结构 向量 矩阵 数组 列表 因子 缺失值NA 数据框 R的数据结构总结 R语言可以进行探索性数据分析&#xff0c;统计推断&#xff0c;回归分析&#xff0c;机器学习&#xff0c;数据产品开发 R对象的基本类型 R语言对象有五…

EKS-1.26 创建ingress-nginx绑定elb暴露服务

1. 创建集群 &#xff08;跳过不介绍&#xff09; 2. 创建Ingress-Nginx服务 部署项目地址【点我跳转】 推荐自定义部署 可绑定acm证书什么的自己属性 对应集群版本推荐阵列 https://github.com/kubernetes/ingress-nginx 修改下面的下载文件版本 Download the deploy.yaml…

Xxxxxx

数据库 1&#xff0c;B树与B树区别 1&#xff0c;B树每个节点存ID与其他数据字段&#xff0c;B非叶子结点&#xff0c;只存ID&#xff0c;叶子结点存完整数据 好处&#xff1a;每个层级B树&#xff0c;可以存储更多的额数据&#xff0c;层级更少&#xff0c;更扁平&#xff…

视觉大模型--deter的深入理解

但对于transformer用于目标检测领域的开创性模型&#xff0c;该模型言简意赅&#xff0c;但是但从论文理解&#xff0c;有很多细节都不清楚&#xff0c;尤其是解码器的query和二分图匹配(Bipartite Matching)和匈牙利算法(Hungarian Algorithm)相关&#xff0c;本文将根据代码详…

GLP-1药物固相合成法-载体树脂及层析填料

摘要&#xff1a;在生物医药GLP-1药物制备领域不仅可提供高稳定性载体树脂&#xff0c;还可根据客户需求&#xff0c;合成定制化载体&#xff08;如预接氨基酸固相合成载体、特殊溶胀度或基团负载量的载体、负载特殊基团的载体、清除树脂等&#xff09;。同时&#xff0c;海普专…

使用TCP协议就一定零丢包了吗?

简述数据包发送流程 为了简化模型&#xff0c;我们把中间的服务器给省略掉&#xff0c;假设这是个端到端的通信。且为了保证消息的可靠性&#xff0c;它们之间用的是TCP协议进行通信。 为了发送数据包&#xff0c;两端首先会通过三次握手&#xff0c;建立TCP连接。 一个数据包&…

Grafana+Promethues配置RocketMQ监控

背景 接前文&#xff0c;Promethues已经配置完毕&#xff0c;下面通过导入的Grafana的面板来配置RocketMQ监控页面 Dashboard 这里我们直接使用Grafana现成的面板配置 node_exporter&#xff1a;https://grafana.com/grafana/dashboards/1860 rocketmq_exporter的dashboar…

【蓝桥杯-枚举模板题】

蓝桥杯-枚举模板题 滑雪课程设计 P3650新的家乡 P8587枚举子集 B3622Air Cownditioning P9011 滑雪课程设计 P3650 核心的思路是把数据规定在[i,i17]里&#xff0c;不够的补&#xff0c;过大的减。枚举i以求最少的钱。 #include<bits/stdc.h> using namespace std;int n…

C#实现只保存2天的日志文件

文章目录 业务需求代码运行效果 欢迎讨论&#xff01; 业务需求 在生产环境中&#xff0c;控制台窗口不便展示出来。 为了在生产环境中&#xff0c;完整记录控制台应用的输出&#xff0c;选择将其输出到文件中。 但是&#xff0c;存储所有输出的话会占用很多空间&#xff0c;…