首页 > 其他分享 >...args剩余参数和 arguments对象的区别

...args剩余参数和 arguments对象的区别

时间:2022-09-30 09:24:26浏览次数:46  
标签:... 对象 args 参数 arguments 数组

一、...args剩余参数(展开运算符)

允许一个表达式在某处展开。展开运算法 在 多个参数(函数调用)、多个元素(用于数组和字面量)和多个变量(用于解构赋值) 地方使用。剩余参数语法允许我们将一个不定数量的参数表示为一个数组。

如果函数的最后一个命名参数以 ... 为前缀,则它会将所有后面剩余的是实参个数包裹成一个数组。

// 例子

function test(a, b, ...args) {

console.log(args)

}

test(1,2,3,4) // [3, 4]

二、arguments对象

在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。arguments对象并不是一个数组,是一个类数组对象,在调用时请注意。

arguments 中包含了函数传递的参数、length、和 callee 属性。

length 属性表示的是实参的长度,即调用函数的时候传入的参数个数。

callee 属性则指向的函数自身,我们可以通过它来调用自身函数。

arguments 是一个经典的类数组对象,我们可以通过Function.call 或者 Function.apply 方法来间接调用数组的方法,也可以直接通过 Array.prototype.slice 或 Array.prototype.splice 等方法把类数组对象转换成真正的数组。

三、...args剩余参数和 arguments对象的区别

  • 剩余参数只包含那些没有对应形参的实参,而 arguments 对象包含了传给函数的所有实参。
  • arguments对象不是一个真正的数组,而剩余参数是真正的 Array实例,也就是说你能够在它上面直接使用所有的数组方法,比如 sort,map,forEach或pop。
  • arguments对象还有一些附加的属性 (如callee属性)。

标签:...,对象,args,参数,arguments,数组
From: https://www.cnblogs.com/xl15/p/16743775.html

相关文章

  • 遇到了一个很棘手的问题...
    遇到了一个很棘手的问题...Q3:CS61-NAYDifficulty:⭐⭐⭐PartA:Implementcs61nay,whichtakesatwoargumentfunctioncombinerandpositiveintegernand......
  • switch... case用法
    switch....case用于判断一个变量与一系列中的某个值是否相等,每个值为一个分支。这也是一个比if...elseif更好的选择。基本语法如下switch(表达式){case值:语句;break......
  • About....
    65级的,学啥啥都不会的。##谷:529262/SoN3ri##Q:2820760598##舟:某个boss的英文名##steam:dyRR##ATcoder.CF:SoN3ri##屑站:-dyR-##待补充..>说得不对,但是......
  • Python万能参数(*args, **kwargs)
    博主讲的非常详细:https://blog.csdn.net/m0_57787326/article/details/122906958Python内置一颗这样的语法糖,它允许函数声明时以(*args,**kwargs)声明它的参数,而(*args,......
  • 女同桌找我要表情包,还好我会Python,分分钟给她下载几十个G...
    emmm~起因呢,这昨晚女同桌跟我说电脑有点卡,喊我去宿舍给她装个新系统,装系统就装系统吧,结果又说新系统表情包都没保存~我当时就有点生气,真当我是万能的呢?于是我直接就用Py......
  • Pytorch教程[持续更新...]
    前言这是一个Pytorch的学习笔记,同时加入了一点个人理解。写这个博客的初衷是为了让我更好的在课上摸鱼,复习视频来自我是土堆强烈推荐Dataset类代码实战这一步我们......
  • 解决报错:ERROR: column is of type json but expression is of type character varyin
    使用Logstash向Mysql的json类型字段插入时报错。[ERROR]2022-09-2616:55:50.316[[main]>worker3]jdbc-JDBC-Exception.Notretrying{:exception=>org.postgres......
  • 《数学已经明确了,0.999...与1是完全相等的》 回复
    《数学已经明确了,0.999...与1是完全相等的》     https://tieba.baidu.com/p/8041478295     5楼K歌之王:回复dons222:emmm,学帝那个和郭老师这个有......
  • 9条消除if...else的锦囊妙计,助你写出更优雅的代码
    前言最近在做代码重构,发现了很多代码的烂味道。其他的不多说,今天主要说说那些又臭又长的if...else要如何重构。在介绍更更优雅的编程之前,让我们一起回顾一下,不好的if...e......
  • Typescripe类型体操 - FlipArguments
    题目中文实现lodash中_.flip方法的类型版本FlipArguments<T>类型接收泛型参数T并返回一个函数类型,且此函数类型有和T相同的返回类型但其参数的顺序是倒过来的E......