您当前的位置:首页 > 互联网教程

什么是JS中的arguments对象

发布时间:2025-05-23 16:38:18    发布人:远客网络

什么是JS中的arguments对象

一、什么是JS中的arguments对象

在函数体内,标识符arguments是指向实参对象的引用,实参对象是一个类数组对象 arguments[0],arguments.length

答:1:arguments是收到的实参副本

在词法分析中,首先按形参形成AO的属性,值为undefined

当实参传来时,再修改AO的相应属性.

2:并把所有收到实参收集起来,放到一个arguments对象里

此时, AO属性只有a,bc,3个属性, arguments里有1,2,3,4,5,所有的值

对于超出形参个数之外的实参,可以通过arguments来获得

3:arguments的索引从 0, 1,2,....递增,与实参逐个对应

4:arguments.length属性代表实参的个数

5:arguments一定不是数组,是长的比较像数组的一个对象,虽然也有length属性

6:arguments每个函数都会有,因此,arguemnts只会在内部找自身的arguments,

<script type="text/javascript">

//求圆形面积,矩形面积,三角形面积

alert(3.14* arguments[0]* arguments[0]);

} else if(arguments.length== 2){

alert(arguments[0]* arguments[1]);

} else if(arguments.length== 3){

alert(arguments[0]+ arguments[1]+ arguments[2]);

二、JavaScript中的Arguments对象

JavaScript中的Arguments对象

arguments是一个对应于传递给函数的参数的类数组(array-like)对象。arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。

arguments是一个对应于传递给函数的参数的类数组(array-like)对象。arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。

对arguments对象常见的操作有三种:

callee获取当前arguments所在的函数

console.log(arguments.callee)打印结果:

arguments对象不是一个Array。它类似于Array,但除了length属性和索引元素之外没有任何Array属性。例如,它没有pop方法。但是它可以被转换为一个真正的Array:

//方法二:Array.prototype.slice将arguments转成arrayvarnewArr2=Array.prototype.slice.call(arguments)console.log(newArr2)//也可以直接使用一个空数组[]varnewArr3=[].slice.call(arguments)console.log(newArr3)

//方法三:ES6的语法varnewArr4=Array.from(arguments)console.log(newArr4)//也可以使用展开运算符(spreadoperator)varnewArr5=[...arguments]console.log(newArr5)}

剩余参数语法允许我们将一个不定数量的参数表示为一个数组。语法:

描述:如果函数的最后一个命名参数以...为前缀,则它将成为一个由剩余参数组成的真数组,其中从0(包括)到theArgs.length(排除)的元素由传递给函数的实际参数提供。示例代码如下:

三、js 函数怎么设置默认参数

1.php有个很方便的用法是在定义函数时可以直接给参数设默认值,如:

但js却不能这么定义,如果写function simue(a=1,b=2){}会提示缺少对象。

2.js函数中有个储存参数的数组arguments,所有函数获得的参数会被编译器挨个保存到这个数组中。于是我们的js版支持参数默认值的函数可以通过另外一种变通的方法实现,修改上例:

var a= arguments[0]? arguments[0]:

var b= arguments[1]? arguments[1]: