JavaScript的arguments对象

js内置对象arguements简介 在 Javascript 的函数中有个名为 arguments 的类数组对象。它看起来是那么的诡异而且名不经传,但众多的 Javascript 库都使用着它强大的功能。 立即下载

arguments 对象

在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。

例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推)。

因此,无需明确命名参数,就可以重写函数:

function sayHi() {
  if (arguments[0] == "bye") {
    return;
  }

  alert(arguments[0]);
}

检测参数个数

还可以用 arguments 对象检测函数的参数个数,引用属性 arguments.length 即可。

下面的代码将输出每次调用函数使用的参数个数:

function howManyArgs() {
  alert(arguments.length);
}

howManyArgs("string", 45);
howManyArgs();
howManyArgs(12);

上面这段代码将依次显示 "2"、"0" 和 "1"。

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

模拟函数重载

用 arguments 对象判断传递给函数的参数个数,即可模拟函数重载:

function doAdd() {
  if(arguments.length == 1) {
    alert(arguments[0] + 5);
  } else if(arguments.length == 2) {
    alert(arguments[0] + arguments[1]);
  }
}

doAdd(10);	//输出 "15"
doAdd(40, 20);	//输出 "60"

当只有一个参数时,doAdd() 函数给参数加 5。如果有两个参数,则会把两个参数相加,返回它们的和。所以,doAdd(10) 输出的是 "15",而 doAdd(40, 20) 输出的是 "60"。

虽然不如重载那么好,不过已足以避开 ECMAScript 的这种限制。

用来表示参数的数组。参数的数量不定的时候用它比较方便。

function heji() {
    var ans = 0;
    for (i = 0; i < heji.arguments.length; i++) {
        ans += heji.arguments[i];
    }
    return(ans);
}
sum = heji(1, 2, 3, 4, 5);

药物对接仿真软件:HADDOCK_(9).结果分析方法 HADDOCK是一种强大的药物对接仿真工具,通过对生成的输出文件进行详细的分析,我们可以验证仿真结果的可靠性,并为进一步优化药物设计提供依据。常见的分析方法包括解读输出文件、使用可视化工具进行结构分析、评估对接模型的稳定性和准确性等。通过这些步骤,我们可以更全面地了解受体和配体的结合模式,从而提高药物设计的成功率。 阅读详情

相关推荐

《UE4游戏开发》之 《查cook资源失败,问题记录》

当项目打包时,cook出错,但是从原始引擎提供的信息中,没有提示具体的那个资源出错,要查到出错资源,还是非常麻烦。 下面就材质cook出错,增加一些日志,方便查找问题做简单记录 材质cook的一个阶段,是收集MaterialShaderMap,如果在这个阶段收集的信息出错,将会在FShaderMapContent::GetOutdatedTypes函数中,因为Shaders指针指向的内存有问题而出错,通过断点发现,FShaderMapContent这个类对象指针为null,而这个类对象的来源于AllMat.

qq_21919621的博客 2581

ECMAScript arguments 对象

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

python二级题库 746

ANSYS Help USER300

USER 300概述单元描述输入数据假设与限制条件 概述 单元描述 Mechanical APDL提供了一种方便的方法来创建自定义的单元,命名为USER300,可以创建几乎任何单元类型。 UserElem子程序为Mechanical APDL在单元类型创建上提供了一个接口,可传递用户自定义单元创建时所需的所有数据,然后从自定义单元返回所有数据和结果,以更新数据库和文件。因为通过接口可以访问数据库和文件信息,所以很少需要了解Mechanical APDL数据库程序和文件结构。该接口还提供了获取Mechanic

weixin_47019765的博客 2235

javascript高级 - argument详解

1. 什么是 arguments 百度说:arguments 是一个类数组对象。代表传给一个function的参数列表。(读不懂,看下面代码) 先看一段代码: function printArgs() { console.log(arguments); } printArgs("A", "a", 0, { foo: "Hello, arguments" }); 执行结果是: [“A”, “...

ruglcc's blog 2451

算法-基于MACD的Adaboost股价涨跌预测模型

MACD是一个指标,具体用法是MACD>0看涨,反之看跌,果真是这样的吗?由于所有的技术指标都基于对历史数据的统计,指标的滞后性也就难免,有时候MACD明明大于0,股价仍然跌,有时候macd小于0,股价仍然涨。 本文基于Adaboost算法提出了一种基于macd的线性阀值分类器作为若分类器,通过在限定的解空间内寻找使得错误率最小的阀值和偏置,这样做避免了训练若分类器的复杂性,经验证,这种方法有效。

mtaxot的博客 8023

从桨叶设计到电机匹配:手把手教你调出无人机最佳动力组合

本文系统介绍了无人机动力系统的核心匹配原则,重点解析了如何通过测试与数据分析,优化螺旋桨与电机的组合,从而显著提升系统力效与续航。文章提供了从参数解读、实战测试到深度调优的完整指南,帮助开发者解决电机过热、推力不足等常见问题,实现无人机性能最大化。

weixin_29305313的博客 242

js的arguments详解

类数组对象:arguments 众所周知,js是一门相当灵活的语言。当我们在js中在调用一个函数的时候,我们经常会给这个函数传递一些参数,js把传入到这个函数的全部参数存储在一个叫做arguments的东西里面,那么这到底是什么东西? 在js中万物皆对象,甚至数组字符串函数都是对象。所以这个叫做arguments的东西也是个对象,而且是一个特殊的对象,它的属性名是按照传入参数的序列来的,第1个参数的属性名是’0’,第2个参数的属性名是’1’,以此类推,并且它还有length属性,存储的是当前传入函数..

顺其自然~专栏 1万+

使用KITTI数据集测试不同算法的性能

该文章将使用同一个kitti数据集来测试不同算法的性能,目前已经测试的算法包括:LIO-SAM,FAST-LIO2,Point-LIO,Faster-LIO。

wwtx的博客 2586

js中【argument】知识点详解

arguments即使你在函数定义中声明了参数,arguments对象仍然会捕获所有传递的参数。在早期的 JavaScript 中,arguments是处理不定参数的主要方法之一。arguments对象是一个类数组对象,用于访问函数调用时传递的所有参数。它具有length属性,可以通过索引访问传递的参数,但没有数组的高级方法。在严格模式下,arguments与函数参数不再同步。arguments不适用于箭头函数,它们不会创建自己的arguments对象。ES6 引入的rest参数(

2301_79858914的博客 2778

Vivado图形化界面烧写MCS文件到SPI FLASH全流程(附常见报错解决方案)

本文详细介绍了使用Vivado图形化界面将MCS文件烧录至SPI FLASH的完整操作流程。内容涵盖从环境准备、MCS文件生成到硬件连接与烧写的每一步,并针对SPI总线宽度报错、FLASH型号识别失败等常见问题提供了深度解决方案,帮助用户高效完成FPGA配置,摆脱对TCL命令行的依赖。

s8t9u0v1w的博客 536

WPS集成DeepSeek最新教程,附详细图文,让文案生成更智能

本文将为大家详细介绍如何将 DeepSeek 功能集成到 WPS 中,通过 OfficeAI 插件,你无需进行复杂的本地部署,只需通过官网连接即可快速启用 DeepSeek 强大的 AI 功能。不论是文案生成、翻译校对,还是深度推理、决策支持,DeepSeek 都能为你提供便捷的解决方案。让我们一起来看看如何操作吧!

Java徐师兄的博客 6万+

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

Windows 下安装 ros2 的超详细教程

Windows11 ROS安装

2401_83363439的博客 3319

vue.js 数组里面有对象、数组_JavaScript之类数组对象与arguments

阅读本文约需要5分钟大家好,我是你们的导师,我每天都会给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈)。上次给大家分享了JavaScript中new的模拟实现,今天给大家分享一下类数组对象与arguments。类数组对象所谓的类数组对象,就是拥有一个 length 属性和若干索引属性的对象。举个例子:即便如此,为什么叫做类数组对象呢?那让我们从读写、获取长度、遍历三个方面看看...

weixin_39606911的博客 402

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

JS Arguments对象详解

arguments是一个对应传递给函数参数的类数组对象; 使用场景:针对同一个方法被多处调用,但是参数数量不确定的情况下,可以更具arguments索引进行判断。 例如: function func1(a, b, c) { console.log(arguments[0]); // 1 console.log(arguments[1]); // 2 console.log(arguments[2]); // 3 } func1(1, 2, 3); 1、arg.

qq_34691738的博客 5969

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深入解析JavaScript的arguments对象

在 JavaScript 中,

qq_63084249的博客 1173

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

js arguments对象的length属性

1. arguments.length 和 函数本身的length ① arguements.length 是 指 实参个数 ② 函数本身的length属性 是 指 函数希望接收的命名参数(形参)的个数 如果仅仅称为形参个数,多少有点不准确 2. 如何判断一个空对象 之前打酱油充当面试官的时候,一般会问一下js怎么判断空对象,总会有面试者一脸看傻子的表情看着我,不屑的说一句:“用length啊”。。。。 ① json序列化:JSON.stringify({}) === "{}" ② for-in 循环

Dの博客 1913

JS中arguments对象

当我们不确定有多少个参数需要传递时,可以用arguments来获取。并且在JS中,arguments是当前函数的一个内置对象,所有函数均内置了一个arguments对象,存储了传递的所有实参。

m0_64085523的博客 1057

JavaScript中的Arguments对象

文章目录JavaScript中的Arguments对象1.arguments 的基本使用2.arguments转array数组3.箭头函数中没有arguments4.扩展 —— ES6 剩余参数 JavaScript中的Arguments对象 arguments是一个对应于传递给函数的参数的类数组(array-like)对象。 arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。 1.ar

qq_49002903的博客 2004

JavaScript ——arguments对象

1.arguments对象 arguments 对象为JavaScript内置对象,该对象包含了函数调用的参数数组,是数组(Array)类型,可以通过arguments对象来找到参数数组里最大的值。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JavaSc...

web_wq 222

JS中Arguments对象

???? 描述 arguments 是一个对应于传递给函数的参数的类数组对象。 arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。例如,如果一个函数传递了三个参数,你可以以如下方式引用他们: arguments[0] arguments[1] arguments[2] 123当然参...

AC916305619的博客 331

JavaScript arguments对象

在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例。可以通过如下代码得以证实(当然,实际上,在函数funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可)。 Array.prototype.testArg = ...

原鑫的个人博客 204

在js中arguments对象的理解

一、在函数调用的时候,浏览器每次都会传递进两个隐式参数: 函数的上下文对象this 封装实参的对象arguments 二、 arguments 对象 arguments 对象实际上是所在函数的一个内置类数组对象 每个函数都有一个arguments属性,表示函数的实参集合,这里的实参是重点,就是执行函数时实际传入的参数的集合。arguments不是数组而是一个对象,但它和数组很相似,所以通常称...

浮生离梦的博客 272

js中的arguments对象

arguments是是JavaScript里的一个内置对象,它很古怪,也经常被人所忽视,但实际上是很重要的。所有主要的js函数库都利用了arguments对象。所以agruments对象对于javascript程序员来说是必需熟悉的。 所有的函数都有属于自己的一个arguments对象,它包括了函数所要调用的参数。他不是一个数组,如果用typeof arguments,返回的是’ob...

anruanba4181的博客 138

JS arguments对象

1、在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例。可以通过如下代码得以证实(当然,实际上,在函数funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可)。 1 Array.prototype.test

wxm0527的博客 174

有关js里的arguments对象

JS中每个函数都会有一个Arguments对象实例arguments。arguments的作用如下:一:获取函数实参及实参长度函数的对象实例arguments,引用着函数的实参。可以用数组下标的方式"arguments[i]"引用相应的实参;可以用arguments.length来访问函数实参的总个数;由于它具有数组的某些特性,通常我们可以把这样的对象称为“类数组对象”(但是它仍然是一个对象,而非...

筑释科长的博客 372
上一篇: JavaScript中匿名函数的多种写法
下一篇: JavaScript function 的 length 属性
KevinOfNeu
博客等级 码龄14年 28粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值