09-----伪数组 arguments

本文详细介绍了JavaScript中arguments对象的功能,包括如何获取函数的实参个数和修改实参值。此外,还提供了几种清空数组的有效方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

arguments 代表的是实参。有个讲究的地方是:arguments 只在函数中使用。

(1)返回函数实参的个数:arguments.length

例子:

    fn(2,4);
    fn(2,4,6);
    fn(2,4,6,8);

    function fn(a,b,c) {
        console.log(arguments);
        console.log(fn.length);         //获取形参的个数
        console.log(arguments.length);  //获取实参的个数

        console.log("----------------");
    }

 

结果:

 

(2)之所以说arguments是伪数组,是因为:arguments可以修改元素,但不能改变数组的长短。举例:

    fn(2,4);
    fn(2,4,6);
    fn(2,4,6,8);

    function fn(a,b) {
        arguments[0] = 99;  //将实参的第一个数改为99
//        arguments.push(8);  //此方法不通过,因为无法增加元素
        console.log(arguments);
    }

 

清空数组的几种方式:

 var array = [1,2,3,4,5,6];

    array.splice(0);      //方式1:删除数组中所有项目
    array.length = 0;     //方式1:length属性可以赋值,在其它语言中length是只读
    array = [];           //方式3:推荐

 

转载于:https://www.cnblogs.com/edeny/p/9287370.html

### 数组与伪数组的区别及特点 #### 数组的特点 JavaScript 中的数组是一种特殊的对象,其主要特征是使用整数作为索引,并且具有 `length` 属性。数组提供了丰富的内置方法,如 `push`、`pop`、`shift`、`unshift`、`slice` 和 `map` 等,可以方便地进行元素操作和遍历。此外,数组的长度是动态的,可以根据需求自动扩展或缩减[^2]。 ```javascript const arr = [1, 2, 3]; console.log(arr.length); // 输出: 3 arr.push(4); console.log(arr); // 输出: [1, 2, 3, 4] ``` #### 伪数组的特点 伪数组(类数组)本质上是一个普通对象,它模仿了数组的部分行为,通常具备以下特性: - **按索引方式存储数据**:伪数组通过数字索引访问元素。 - **具有 length 属性**:该属性表示伪数组中元素的数量。 - **没有数组的方法**:伪数组不具备数组的内置方法,如 `push` 或 `map`[^4]。 例如,函数中的 `arguments` 对象就是一个典型的伪数组: ```javascript function example() { console.log(arguments); } example('a', 'b', 'c'); // 输出: { '0': 'a', '1': 'b', '2': 'c', length: 3 } ``` #### 数组与伪数组的主要区别 1. **原型链不同**:数组继承自 `Array.prototype`,因此可以直接使用数组的方法;而伪数组通常继承自 `Object.prototype`,无法直接调用数组方法[^2]。 2. **功能差异**:数组支持所有标准的数组操作方法,而伪数组需要借助 `Array.prototype` 的方法来实现类似功能,例如使用 `Array.prototype.slice.call()` 将伪数组转换为真正的数组[^1]。 3. **应用场景不同**:数组适用于需要频繁修改和操作数据的场景;伪数组则常用于临时存储数据,尤其是在需要兼容非数组结构的情况下,例如 DOM 操作或函数参数处理[^3]。 #### 伪数组的转换方法 为了在伪数组上使用数组的方法,可以通过以下方式将其转换为真正的数组: - 使用 `Array.prototype.slice.call()` 方法: ```javascript const domElements = document.getElementsByTagName('div'); const domArray = Array.prototype.slice.call(domElements); console.log(domArray); // 输出一个真实的数组 ``` - 使用 ES6 的扩展运算符: ```javascript const args = [...arguments]; console.log(args); // 输出一个真实的数组 ``` #### 伪数组存在的意义 伪数组的设计允许开发者在某些特定场景下模拟数组的行为,尽管它不完全具备数组的功能。这种设计使得普通对象也可以利用数组的一些方法,从而简化开发流程并提高代码的可复用性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值