【JS/文档】js 中的 Arguments 对象

rest参数与arguments对象对比:快速理解差异 深入对比es6函数扩展中的rest参数与arguments对象,揭示两者在使用场景、语法特性上的核心区别,帮助开发者更高效地处理函数参数。 阅读详情

在javascript函数体内,标识符arguments具有特殊含义。它是调用对象的一个特殊属性,用来引用Arguments对象。 Arugments对象就像数组,注意这里只是像并不是哈。


javascript函数体内,arguments像数组(并不是真的数组,是一个Arguments对象, 再次强调)一样,有length属性,可以代表传给函数的参数的个数。


引用一个形式参数可以用参数名,也可以用arguments[]数组形式,其中arguments[0]表示第一个参数。


arguments.length属性:


js不会主动为你判断你到底给函数传了多少个参数,如果你多传了,多余的部分就没有被使用,如果你少传了,那么没传的参数值就是undefined


所以我们可以借助arguments的length属性来检测调用函数时是否使用了正确数目的实际参数,因为javascript是不会为你做这些 事的


function f(x,y,z)

{

  //首先检查传递的参数数量是否正确

  if(arguments.length!=3)

  {

      thrownew Error("function f called with "+ arguments.length+"arguments ,but it not 3 arguments.");

  }

  //下面运行真正的函数

}

arguments还为我们提供了这样一种可能,就是为一个函数传任意数目的实际参数:


比如说,我想判断你传给我的一些数字的大小,取出最大的那个,对,没错,你传多少参数都行,但是前提是你要传数字,因为我在函数内部懒得判断了。 呵。


function max()

{

  //根据我上一篇日志,这已经是JavaScript内最小的数字了

  var m = Number.NEGATIVE_INFINITY;

  for(var i =0; i < arguments.length; i++)

  {

      //只要有任何一个参数比m大,那么m就变成了这个参数的值

      if(arguments[i]> m)

           m = arguments[i];

  }

  return m;

}

怎么样?这个方法很巧妙吧?呵呵。


说明一下arguments与真正传的形式参数是一致的:


比如,你给函数传了一个叫param的参数,并且只有这一个参数,那么param与arguments[0]都是对这个参数值的引用,


改变其中一个值,即改变了二者所有的值


function change(param)

{

  //比如我传的param为simaopig,那么alert就是simaopig,

  //如果啥也没传就会alert undefined

  alert(param);

  //用arguments[0]改变了这个参数的值

   arguments[0]='xiaoxiaozi';

  //没错,这个值变成了xiaoxiaozi

  alert(param);

}

arguments的callee属性:


arguments的callee属性是用来引用当前正在执行的函数,这对未命名的函数调用自身非常有好处。


现在用arguments的这个callee同样可以简单的实现


//用函数直接量,采用arguments.callee属性实现递归函数

var result =function(x){

  if(x<=1)return1;

  return x*arguments.callee(x-1);

};

在最后提醒大家一点,既然这个arguments这么厉害,那么我们就不要为变量命名为arguments 了,事实上arguments是javascript的保留字之一.


原文链接:http://www.360doc.com/content/15/0827/20/27381723_495245499.shtml

js arguments参数使用和详解 一、arguments 参数介绍arguments,它是js中函数内置的一个对象,而执行函数方法的实参中值都存储在arguments中;要想获取到这些实参,就需要像数组一样,用下标/索引来定位到每个值上面,但是又不能说它是一个数组,因为它里面还有其他的属性,如callee;并且不能对它使用shift、push、join等方法。而没有传递值的命名参数将会被自动赋予undefined;arguments.length----参数个数arguments.callee()---调佣自身二、使用案例案例1: 案 阅读详情

相关推荐

【JS交互基础】几个特殊的对象 Global、Window、Arguments、this

每个函数都有一个arguments属性,表示函数的实参集合,这里的实参是重点,就是执行函数时实际传入的参数的集合。浏览器把Global对象作为window对象的一部分实现了,因此,所有的全局属性和函数都是window对象的属性和方法。第三点:在严格的模式下,arguments对象在运行的时候不可以修改,修改arguments对象不会影响到实际的函数参数。第六点:arguments的callee属性可以返回对应的原函数,达到调用自身函数的效果,但是在严格模式中是不适用的。

前端知识分享喵 723

js arguments对象说明

在javascript函数体内,标识符arguments具有特殊含义。它是调用对象的一个特殊属性,用来引用Arguments对象。 Arugments对象就像数组,注意这里只是像并不是哈。 javascript函数体内,arguments像数组(并不是真的数组,是一个Arguments对象, 再次强调)一样,有length属性,可以代表传给函数的参数的个数。 引用一个形式参数可以用...

网站开发初中级代码参考-转载 321

目标检测 RT-DETR(2023)详细解读

在使用了这个技巧后,显然训练过程中,类别的标签不再是此前的0和1离散值,而是0~1的连续值。关于 Query Selection(查询向量选择),大家应该并不陌生,这个方法可谓在DETR领域大杀四方,如DAB-DETR对查询向量进行重构理解,将其解释为Anchor,DN-DETR通过查询降噪来应对匈牙利匹配的二义性所导致的训练时间长的问题,DINO提出从Encoder中选择Top-k特征进行学习等一系列方法,这都无疑向我们证明,查询向量很重要,选择好的Query能够让我们事半功倍。在RT-DETR中,

qq_51352130的博客 5871

JS里arguments的作用

对象允许您访问传递给函数的所有参数,无需提前知道这些参数的名称。对象在某些情况下非常有用,但它不是一个真正的数组,而是一个类似数组的对象。对象,您可以编写一个函数,根据传递给它的参数数量和类型来执行不同的操作,从而模拟函数重载的效果。对象允许您访问传递给函数的所有参数,无论您是否在函数定义中命名了这些参数。是一个特殊的对象,它用于在函数内部引用传递给函数的参数。函数根据传递给它的参数数量执行不同的操作,模拟了函数的重载效果。属性来确定传递给函数的参数数量,从而根据需要执行不同的操作。

z2000ky的博客 534

视频异常检测 5 大经典数据集实战对比:UCSD Ped2 vs CUHK Avenue vs Street Scene

本文深入对比分析了视频异常检测领域的五大经典数据集,包括UCSD Ped2、CUHK Avenue和Street Scene等,从场景复杂度、异常类型和标注质量等多维度进行实战评估。通过详细的数据集特性解析和计算效率测试,为研究者和工程师提供选型指导,帮助优化算法在智能监控和安防领域的应用效果。

weixin_33800463的博客 409

AD(AltiumDesigner)封装导入allegro生成allegro封装

AD(AltiumDesigner)封装导入allegro生成allegro封装 貌似PCB的封装问题是一个无尽话题,为了简单我总是想找捷径(主要还是太懒了),因为也是近期才开始学习使用allegro进行PCB设计,在最近的一个设计中,很多器件封装allegro中都没有,一个一个画感觉很费时间,但是在AD(AltiumDesigner)的封装库中是有的,于是便想着AD的封装库能不能倒入到alleg...

yangh2560的博客 2万+

JS arguments对象的作用

arguments 对象作用:(1)实现js的重载(2)检测参数个数         arguments对象大多用来针对同个方法多处调用并且传递参数个数不一样时使用。         例:实现传递参数的累加,由于传递的参数的个数不一致,故使用arguments对象。 ...

夏沐的博客 1806

第12章 STM32+BH1750光照传感器+OLED模块显示环境光照强度

相比光敏传感器,它可以直接输出环境光照强度的数值(范围是0~65535lx),非常适合懒人党,各位的传感器买到手后,赶紧跟着文章试试吧!

qq_44645742的博客 1万+

JavaScript第 14 篇,JavaScript函数中的arguments(JS函数中的arguments,函数默认参数arguments)

⭐在JavaScript中,arguments是一个类数组对象,它包含了函数调用时传入的所有参数。尽管它看起来像数组,但实际上并不是真正的数组,这意味着它不具有数组的所有方法如.push()、.pop()等。 JS的函数参数和其他的语言有些不同,它并不介意你传进来多少个参数,以及参数的数据类。即使你在定义函数时,只设置了两个形参,那么在调用这个函数时,你给他传递一个、两个,或者是其它四个、五个实参,它都能接收,之所以会这样是因为在函数参数内部是用一个数组来表示的,在函数体内是通过

AI Agent 全栈架构师(AI + GIS + Backend)& 数字芯片系统架构师(FPGA),NorthCity Smile的博客(NcSmile,博主域名:https://ncmile.blog.youkuaiyun.com) 5346

2024全国村级行政边界数据

五级行政区划:村边界数据产品涵盖五级行政区划:(一级行政区)省级行政区共31个其中:(台湾、香港、澳门除外);(二级行政区)地级行政区共334个其中:7个地区、3个盟、30个自治州、294个地级市;(三级行政区)县级行政区共2851个其中:1355个县、117个自治县、49个旗、3个自治旗、363个县级市、962个市辖区、1个林区、1个特区;(四级行政区)乡级行政区共40497个其中:11626个乡、1034个民族乡、20117个镇、7566个街道、151个苏木、1个民族苏木、2个县辖区公所;

J_Giser的博客 3233

在 SAP 中实现“租赁资产”管理,核心是把 IFRS16/ASC842 等新租赁准则的要求落地到系统

摘要:本文详细介绍了在SAP S/4HANA系统中实现IFRS16/ASC842租赁准则的具体操作流程。主要内容包括:1) 系统前置配置,如激活租赁会计组件、定义租赁类型和会计科目;2) 租赁合同创建与主数据维护;3) 初始确认的会计处理;4) 日常折旧计提和租金支付流程;5) 合同变更与终止管理。通过RE-FX-LM模块与固定资产模块的集成,系统可自动生成使用权资产和租赁负债,支持从合同创建到报表披露的全生命周期管理,确保符合新租赁准则要求。

金牌架构师 988

JS中的arguments参数

在我的博客中,我曾经写过关于函数调用时浏览器每次传递的隐式参数this,今天要讲的是另外一个浏览器传递给函数的隐式参数arguments。在函数调用的时候,浏览器每次都会传递进两个隐式参数:1. 函数的上下文对象this2. 封装实参的对象arguments下面是一个例子:function fun(){ console.log(arguments); } fun('tom',[1,2,3],{...

前端老兵 4万+

Cesium 实战 28 - 三维视频融合(视频投影)

Cesium 实战 27 - 三维视频融合(视频投影)。

非科班Java出身GISer的博客 3371

javascript的arguments详解

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arguments 笔者虽然在开发中经常会用到arguments,但主要还是用于获取函数的可变参数列表,并没有深入理解,故在本文补上。 arguments定义:arguments是函数(不包括箭头函数)内置的一个类数组对象,数组元素为函数...

讨厌走开啦 2162

强化学习(Q-learning、DQN) —— 理论、案例与交互式 GUI 实现

本文详细介绍了强化学习中基于值函数的 Q-learning 算法及深度强化学习的 DQN 方法,从基本理论、数学模型到算法流程均进行了全面阐述。通过迷宫导航、股票交易策略和机器人控制等典型案例,展示了强化学习在处理高维、非线性和时变问题中的强大适应性。为了帮助工程师和研究者更直观地理解强化学习的训练过程,本文还提供了一份基于 Python 与 PyQt6 实现的交互式 GUI 演示系统代码示例,用户可以在线调整参数,实时观察累计奖励和 Q 值的变化,从而更深入地理解算法收敛和策略演化的过程。

闲人编程的博客 1476

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

JavaScript的arguments对象

arguments 对象 在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。 例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推)。 因此,无需明确命名参数,就可以重写函数: function sayHi(

Kevin的逆袭博客 1018

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

js中arguments理解

什么是arguments? 它是JS的一个内置对象 .函数内部的类数组对象。因为在js函数对象中传递的形参 可以传也可以不传,若方法里没有写参数却传入了参数,该如何拿到参数呢,答案就是arguments了 js语法不支持重载!但可用arguments对象模拟重载效果。 arguments对象:函数对象内,自动创建的专门接收所有参数值得类数组对象。 arguments[i]: 获得传入的下标为i的参数值 ar...

前端小99的博客 3969

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

js之arguments对象

首先要说一下arguments: ECMAScript中不介意传递进来的是什么参数,有多少个,更不在乎是什么数据类型的。为什么用这样那?原因就是ECMAScript的内部是用一个数组来表示的,函数体内可以通过一个叫arguments的对象来访问这个参数数组。Arguments是一个与数组类似的东西,在javascript中arguments是一个特殊的对象,不需要明确的指出参数的名字就可以访问;

可了不得 668

javaScript 函数中arguments对象

在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。 注意⚠️,arguments对象是一个类数组 例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推)。 因此,无需明确命名参数,就可以重写函数: function s...

m0_37293343的博客 176

058_JavaScript函数arguments对象

1. 参数规则 1.1. JavaScript函数定义不会为参数(parameter)规定数据类型。 1.2. JavaScript函数不会对所传递的参数(argument)实行类型检查。 1.3. JavaScript函数不会检查所接收参数(argument)的数量。 2. 参数默认 2.1. 如果调用参数时省略了参数(少于被声明的数量), 则丢失的值被设置为: undefined。 2.2. 如果函数调用的参数太多(超过声明), 则可以使用arguments对象来达到这些参数。 3. 函数

aihiao的专栏 278

JS中arguments对象

与其他程序设计语言不同,ECMAScript 不会验证传递给函数的参数个数是否等于函数定义的参数个数。 开发者定义的函数都可以接受任意个数的参数而无需跟定义的函数相匹配(根据 Netscape 的文档,最多可接受 255 个),而不会引发任何错误。任何遗漏的参数都会以 undefined 传递给函数,多余的参数函数都将会忽略掉。 arguments 对象 arguments对...

weixin_30384031的博客 81

JavaScript 初使用 arguments对象

背景: 本人现在在写手上的项目的时候经常看到有大佬使用arguments对象,但是奈何本人水平不高,压根不知道arguments为何方神圣,于是看了几次文档后无功而返,但是在今日看文档并且使用arguments 终于略懂这是为何物了。 只为记录前端学习过程,请大佬看到多指教; 官方描述: arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。例如,如果一个函数传递了三个参数,你可以以如下方式

suQii的博客 221

JavaScript的arguments 对象使用总结

当 arguments 对象开始执行时,它会为每个函数进行实例化。 arguments 对象只能在其关联函数的范围内直接进行访问,实际上是当前函数的一个内置属性。 您可以使用 arguments 对象来创建可接受任意个参数的函数。 这一功能还可以通过在定义函数时使用参数数组结构来实现。 一、在函数代码中,使用特殊对象 arguments,我们无需明确指出参数名,就能访问它们

不怕麻烦的鹿丸的博客 670

js 函数 html 形参,理解javascript arguments对象和函数形参

JavaScript arguments对象主要是在javascript的function这一节中学习。三:argument对象实际上,函数体内可以通过argument对象来接收传递进来的参数。function box(){return arguments[0] + '|'+arguments[1]; //得到每次参数的值}alert(box('caibaojian',24));arguments...

weixin_39897687的博客 162
上一篇: 【JS/辨析】js中的计时器:setTimeout & setInterval
下一篇: 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 11 浏览器事件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值