arguments
概述:
arguments 是对象的一个特殊属性。arguments对象就像数组,但是它却不是数组。
argument 对象包含了函数调用的参数数组,通过这种方式你可以很方便的找到最后一个参数的值。
arguments是函数的里面的所有参数的集合,它是一个伪数组(具备数组特性 有下标 有length(长度))。
1:arguments是收到的实参副本
在词法分析中, 首先按形参形成AO的属性,值为undefined
当实参传来时, 再修改AO的相应属性.
2:并把所有收到实参收集起来,放到一个arguments对象里
t(a,b,c){},
调用时: t(1,2,3,4,5) 5个参数
此时 , AO属性只有a,b,c,3个属性, arguments里有1,2,3,4,5, 所有的值
function fn() { //所有的函数都具备arguments arguments特殊的值里面包含所有的参数 console.log(arguments) //获取arguments里面的参数的第一个 arguments[下标] 来获取对应的下标的值 console.log(arguments[0]); //查询当前arguments的长度 arguments.length console.log(arguments.length); } //对应的下标从0开始 0表示第一个 最大值 对应的长度-1 length 当前的个数-1 fn(1, 2, 3, 4, 5)
属性
length, 获取arguments对象的长度。
callee, 引用当前正在执行的函数。
function sum(){ //获取所有的参数 数值 var result = 0 //遍历arguments里面的所有的数值 for(var i =0;i<arguments.length;i++){ result += arguments[i] } return result } console.log(sum(1,2,3,4,5))
参数的长度
window.onload = function(){ abc(1,2,3); } function abc(){ //虽然这里没有引用参数,但是arguments仍能捕获到 alert(arguments.length); }//output 3
隐藏的参数
function abc(x,y){ alert(x+","+y);//output:1,2 for(var i=0;i<arguments.length;i++){ alert(" "+arguments[i]);//output:1 2 3 } }
改变参数值
function abc(x,y,z){ arguments[2] = "hello"; for(var i=0;i<arguments.length;i++){ alert(" "+arguments[i]); } }//output: 1 2 hello
使用arguments来获取对应的值的时候 我们一般不写形参
arguments使用的相关
-
arguments通过[下标] 来返回对应的元素
-
arguments的length属性表示传入参数的个数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix