Javascript中的arguments对象

yizhihongxing

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日

相关文章

  • 探析浏览器执行JavaScript脚本加载与代码执行顺序

    探析浏览器执行JavaScript脚本加载与代码执行顺序的完整攻略 一、概述 在开发Web应用程序时,我们经常需要编写客户端脚本来增强用户界面和对用户的交互。而Javascript作为最流行的客户端脚本语言之一,因其动态性、易读性和使用的灵活程度,成为了开发Web前端的重要工具之一。 但是Javascript的执行过程比较复杂,它的执行顺序与代码的加载顺序有…

    JavaScript 2023年5月27日
    00
  • HTML+CSS+JavaScript实现简单日历效果

    为了让大家更好地理解如何使用HTML、CSS、JavaScript实现简单的日历效果,我将会提供一份详细的攻略。具体过程如下: 第一步:HTML代码 日历的基础是HTML代码,需要我们创建一个像如下的结构: <div class="calendar"> <div class="header"> …

    JavaScript 2023年5月27日
    00
  • JavaScript中的运算符讲解

    JavaScript中的运算符讲解 JavaScript中的运算符用来执行各种算术和逻辑操作。JavaScript支持多种运算符,包括算术、比较、逻辑、条件、位运算符等。本篇文档将介绍JavaScript中的各种运算符,并通过示例说明其使用方法和效果。 算术运算符 算术运算符用于执行算术操作,如加、减、乘、除等。JavaScript中的算术运算符包括加法运算…

    JavaScript 2023年5月18日
    00
  • React组件通信之路由传参(react-router-dom)

    React组件之间的通信是一个非常常见的需求,而路由参数传递是其中一种传递参数的方式。本文将详细讲解如何在React应用中通过react-router-dom库实现路由参数传递。 什么是路由参数传递 路由参数传递就是在通过路由跳转到指定页面时,在路由路径上携带一些参数,在跳转后的页面中可以通过某些方式获取这些参数。这种方式通常用于在不同的组件之间传递一些参数…

    JavaScript 2023年6月11日
    00
  • JavaScript实现计算圆周率到小数点后100位的方法示例

    首先我们需要知道如何计算圆周率。圆周率是一个无理数,用希腊字母π表示,它的值约为3.14159265358979323846。 对于JavaScript实现计算圆周率到小数点后100位的方法,我们可以使用莱布尼兹公式来完成,公式如下: π/4=1-1/3+1/5-1/7+1/9-1/11+… 其中,π是我们要求的圆周率。 在实现过程中,我们将公式求和10…

    JavaScript 2023年5月28日
    00
  • Python实现网页截图(PyQT5)过程解析

    下面我将详细讲解如何使用Python和PyQT5实现网页截图。 准备工作 在使用Python实现网页截图之前,需要先安装PyQT5和selenium库。可以使用如下的命令来安装: pip install PyQt5 selenium 除此之外,还需要下载Chrome浏览器对应版本的驱动程序。可以到ChromeDriver官网下载对应的驱动程序。 实现过程 导…

    JavaScript 2023年6月11日
    00
  • 基于jQuery的$.getScript方法去加载javaScript文档解析

    当需要动态加载JavaScript文件时,可以使用$.getScript()方法。下面是完整的攻略: 什么是$.getScript()方法 $.getScript()是jQuery提供的一种方便的方法,可以用于异步加载并解析JavaScript文件。使用$.getScript()方法后,不需要像传统的<script>标签那样阻止页面加载,可以在页…

    JavaScript 2023年5月27日
    00
  • js中判断两个数组对象是否完全相等

    在JavaScript中,比较两个数组对象是否完全相等是一个比较常见的任务。下面是一些可行的方法,可以实现此任务。 方法一:使用JSON.stringify() 可以使用JSON.stringify()函数来比较两个数组对象是否相等。该函数将对象转换为字符串,然后比较这些字符串。如果两个数组对象的字符串相等,则它们也是相等的。下面是一个示例代码: const…

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