argument详解

arguments详解

arguments 是一个伪数组对象。代表传给一个function的参数列表。

实例:

function printArgs() {
   console.log(arguments);
}
printArgs("A", "a", 0, { foo: "Hello, arguments" })

返回的结果是:

[“A”, “a”, 0, Object]

控制台打印出来的是一个数组,但并不是真正的数组,所以说arguments 是一个伪数组的对象

argument有 length 属性,可以用 arguments.length 来获得传入函数的参数个数。
实例:

function fn()
{
    console.log("The number of parameters is " + arguments.length);
}
fn();
fn(1, 2);
fn(1, 2, 3);

执行结果:

The number of parameters is 0
The number of parameters is 2
The number of parameters is 3

由于它是一个伪数组,如果想要使用数组方法的话需要将它转换成一个真的数组

[].slice.call(arguments);

在这里,只是简单地调用了空数组的 slice 方法,而没有从 Array 的原型层面调用。
Array.from() 是个非常推荐的方法,其可以将所有类数组对象转换成数组。

ES6中的 arguments

使用扩展运算符

function fn() {
  console.log(...arguments);
}

fn(1, 2, 3);

执行结果是:

1 2 3

简洁地讲,扩展操作符可以将 arguments 展开成独立的参数。

数组与伪数组对象
数组具有一个基本特征:索引。这是一般对象所没有的。

const obj = {0: 'a', 1: 'b'};
const arr = ['a', 'b'];

我们利用obj[0]、arr[0] 都能取得自己想要的数据,但取得数据的方式确实不同的。obj[0] 是利用对象的键值对存取数据,而arr[0]却是利用数组的索引。事实上,Object 与 Array 的唯一区别就是 Object 的属性是 string,而 Array 的索引是 number。

下面看看伪数组对象。

伪数组的特性就是长得像数组,包含一组数据以及拥有一个 length 属性,但是没有任何 Array 的方法。再具体的说,length 属性是个非负整数,上限是 JavaScript 中能精确表达的最大数字;另外,类数组对象的 length 值无法自动改变。

————————————————
版权声明:本文为CSDN博主「ruglcc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ruglcc/article/details/89221641

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值