js中的参数列表与参数数组

JS中的函数中,其实有一个“隐形”的东西来存储实参所有的实参,这个东西就是arguments对象。但在实际使用过程中它的使用方式和数组简直一模一样,用起来感觉就是数组,没有任何毛病,但实际上它并不是一个数组。

arguments看起来,用起来都像是数组
  • 1) 调用方法类似:都可以通过中括号下标的形式来访问具体某个参数。

  • 2) 有length属性:直接可以获取实参的个数。

  • 3) 和数组一样,用中括号将内容包含起来。
    这里用一个简单的例子

  • 在控制台得到的结果如下

  • 在这里插入图片描述

arguments到底是不是数组呢?
我们从三个角度来验证下arguments是不是数组。
1)如果是数组,就可以使用前面介绍过的数组的方法,比如用push函数给arguments插入一个元素。

在这里插入图片描述

控制台报错,所以arguments并不像正常的数组一样有push函数

在这里插入图片描述

2)正面确认下,用我们之前判断数组的方法来判断一下:在这里插入图片描述
控制台输出flase:直接说明arguments不是数组。

在这里插入图片描述

3)使用toString查看

在这里插入图片描述
在这里插入图片描述

从控制台直接打印出来的__proto__属性值就可以看出,arguments是Object。但是,这个arguments对象又跟我们看到的普通(正常)对象又有区别,因为一般的对象是大括号,而arguments对象是中括号,这一点又像数组。
最后我们得出结论,arguments本质上是对象,而且是具有数组特性的对象,包括表现形式都用中括号。
而其实类似arguments这种的,叫做类数组
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值