JavaScript中的Arguments对象
发布时间:2025-05-23 11:15:02 发布人:远客网络
一、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中的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中: (function(){})();如何理解
1、javascript中:(function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。
2、(function(){})是一个标准的函数定义,但是没有复制给任何变量。所以是没有名字的函数,叫匿名函数。没有名字就无法像普通函数那样随时随地调用了,所以在他定义完成后就马上调用他,后面的括号()是运行这个函数的意思
3、函数声明:使用function声明函数,并指定函数名。
4、函数表达式:使用function声明函数,但未指定函数名,将匿名函数赋予一个变量。
5、var setFn= function(){// coding}
6、匿名函数:使用function关键字声明函数,但未指定函数名。匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
7、参考资料:百度百科- javascript