Javascript中的arguments对象

Javascript中的arguments对象

在Javascript中,函数参数可以通过arguments对象访问。这个对象是一个类数组对象,包含了函数调用时所有传入的实参,可以用来访问函数调用时没有在形参列表中声明的参数。

arguments对象的基本用法

arguments对象有如下属性和方法:

属性

  • callee: 返回当前正在执行的函数的引用,一般用途较少。
  • length: 表示传递给函数的参数的个数。注意,该属性是命名参数和不命名参数的总和,而与函数定义时声明的参数的个数无关。

方法

  • arguments[i]:获取传递给函数的第i个参数。
  • arguments.length:获取传递给函数的参数数量。

Function的apply和call方法可以用来调用函数时改变函数的上下文对象,同时还可以动态给函数传递参数,如:

function add(x, y){
    return x + y;
}

console.log(add.apply(null, [1, 2])); // 输出 3
console.log(add.call(null, 1, 2));    // 输出 3

示例一: 不定参数求和

function sum(){
    var total = 0;
    for(var i = 0; i < arguments.length; i++){
        total += arguments[i];
    }
    return total;
}

console.log(sum(1, 2, 3, 4));    // 输出 10
console.log(sum(1, 2));          // 输出 3
console.log(sum(4));             // 输出 4
console.log(sum());              // 输出 0

在这个例子中,sum函数并没有声明形参,通过访问arguments对象获取函数调用时所有传入的实参,然后进行求和。

示例二:获取传参默认值

function foo(a, b, c){
    a = a || 1;
    b = b || 2;
    c = c || 3;
    return a + b + c;
}

console.log(foo());         // 输出 6
console.log(foo(7));        // 输出 12
console.log(foo(7, 8));     // 输出 18
console.log(foo(7, 8, 9));  // 输出 24

在这个例子中,foo函数有三个参数,但是函数可能被调用时没有传入任何实参,所以需要给参数初始化默认值。当参数没有传入时,||运算符会将其视为假值,因此可以用a = a || 1的方式保证a参数有默认值1。同样地,bc的默认值分别为23。可以看到,在不同的调用情况下,arguments对象中包含的实参数量是不同的,但是函数能够通过不定数量的实参来获取并设定默认值。

总结

arguments对象是Javascript函数中的一个非常强大的工具,可以动态获取传入的实参,可以方便地处理没有命名的实参,也可以实现不定数量实参的传递。但是,过度使用arguments对象可能会让代码变得难以理解和维护,因此需要谨慎使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript中的arguments对象 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Javascrip实现文字跳动特效

    实现文字跳动特效需要用到JavaScript中的定时器setInterval(),具体步骤如下: 创建一个div元素用来存放文字,设置其样式(如背景色、文字颜色、字体大小等)和文字内容。 将文字内容拆分为单个字符,并在其周围每个字符之间插入一个空格。 创建一个数组存储拆分后的字符,然后将数组中的每个元素用span标签进行封装,便于后续添加样式或进行单个字符操…

    JavaScript 2023年6月11日
    00
  • JavaScript注释

    JavaScript注释是指在JavaScript代码中添加的文本,旨在对代码进行解释并提高代码的可读性。通常情况下,当写代码时需要将一些重要信息记录下来,供自己或其他开发者参考。JavaScript注释是实现这一目标的一种简单而有效的方式。 JavaScript注释有两种,多行注释和单行注释。通常情况下,多行注释用于对整段代码进行解释,单行注释用于对单行代…

    Web开发基础 2023年3月30日
    00
  • 用js实现用户注册功能

    下面是用JS实现用户注册功能的攻略,包括以下几个步骤: 1. 构建注册表单 首先,需要创建一个表单来让用户进行注册,表单中应该包括用户名、密码、邮箱等常见的注册信息,以及一个“提交”按钮。需要定义每个input的name属性,方便后续使用。示例代码如下: <form id="register-form"> <label …

    JavaScript 2023年6月10日
    00
  • JS异步执行结果获取的3种解决方式

    下面我为你详细讲解“JS异步执行结果获取的3种解决方式”的完整攻略。 什么是异步执行? 异步执行是指 JavaScript 引擎在执行代码时,遇到需要等待的任务时不会阻塞当前执行流程,而是将该任务挂起,通过异步调用机制继续执行后面的代码,等待该任务完成后再返回到前面被挂起的位置继续执行。 常见的异步任务包括:Ajax,定时器,事件回调函数等。 异步执行结果获…

    JavaScript 2023年5月28日
    00
  • js data日期初始化的5种方法

    接下来我将详细讲解“js data日期初始化的5种方法”。 1. 使用 Date() 方法初始化日期 Date() 是 JavaScript 内置的方法。如果没有传入参数,它将返回当前日期和时间。使用 Date() 可以通过不同方式传递参数,初始化日期。以下是5种使用 Date() 方法初始化日期的方法: 1.1 不带参数 let now = new Dat…

    JavaScript 2023年5月27日
    00
  • JavaScript及jquey实现多个数组的合并操作

    首先,需要明确一点,JavaScript中合并多个数组可以通过Array.concat()方法来完成,例如: let arr1 = [1, 2, 3]; let arr2 = [4, 5, 6]; let arr3 = [7, 8, 9]; let mergedArray = arr1.concat(arr2, arr3); console.log(merg…

    JavaScript 2023年5月27日
    00
  • asp.net通过js实现Cookie创建以及清除Cookie数组的代码

    ASP.NET是一个Web应用程序框架,通过JavaScript可以创建Cookie并清除Cookie数组。下面是实现Cookie创建和清除Cookie数组的示例代码: 创建Cookie 要在ASP.NET网站中创建Cookie,我们可以使用JavaScript的document.cookie属性。下面是创建一个名为MyCookie,值为123的Cookie…

    JavaScript 2023年6月11日
    00
  • 浅析JavaScript中两种类型的全局对象/函数

    1. 全局对象/函数的概念 JavaScript中有两种类型的全局对象/函数:Global对象和全局函数。它们都可以在任意JavaScript代码中访问,因为它们被加载到了全局执行环境中。 Global对象 Global对象是JavaScript中的特殊对象,它包含了所有全局变量、全局函数和内置对象,例如:Number、String、Math等。 在浏览器中…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部