[译]Javascript 参数(arguments)对象

本文翻译youtube上的up主kudvenkat的javascript tutorial播放单

源地址在此:

https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b

Javascript 参数(arguments)对象是一个在所有函数中都可用的本地变量.其包含了所有传给函数的参数,并且像数列一样排着序.参数对象的长度就是传给函数的参数个数.

JavaScript 参数对象例子:

function printArguments()
{
    document.write("Number of arguments = " + arguments.length + "<br/>")
    for (var i = 0; i < arguments.length; i++)
    {
        document.write("Argument " + i + " = " + arguments[i] + "<br/>");
    }
    document.write("<br/>");
}

printArguments();
printArguments("A", "B");
printArguments(10, 20, 30);

可以将任意个数的参数传给Javascript函数吗

可以的.你可以传任意个数的参数给任意Javascript函数.所有的参数将会被存在参数对象中

function addNumbers()
{
    var sum = 0;
    document.write("Count of numbers = " + arguments.length + "<br/>")
    for (var i = 0; i < arguments.length; i++)
    {
        sum = sum + arguments[i];
    }
    document.write("Sum of numbers = " + sum);
    document.write("<br/><br/>");
}

addNumbers();
addNumbers(10, 20, 30);

参数对象只在函数内部有效.在函数外部试图获得参数对象的话只会导致undefined错误.尽管你可以像数列一样给arguments排序,但是其并不是数列.除了长度属性以外,参数对象并没有其他数列所拥有的属性.比如数列所拥有的sort()方法,参数对象并没有.但是,你可以轻易地将参数对象转换成一个数列.

将Javascript参数对象转换成一个数列

function numbers()
{
    var argsArray = Array.prototype.slice.call(arguments);
    argsArray.sort();
    document.write(argsArray);
}

numbers(50, 20, 40);

Output : 20, 40, 50

时间: 2025-01-07 13:38:09

[译]Javascript 参数(arguments)对象的相关文章

javascript参数arguments对象

ECMAScript函数的参数与大多树其他语言中函数的参数有所不同.ECMAScript函数不介意传递进来多少个参数,也不在乎传进来参数是什么类型.函数体是通过arguments对象来访问参数数组.arguments对象只是与数组类似,但并不是数组实例. 例如,在函数 sayHi() 中,第一个参数是 message.用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推). 因此,无需明确命名参数,就可以重写函数: funct

javascript的arguments对象简单介绍

javascript的arguments对象简单介绍:这里以最简单的方式介绍一下arguments对象的用法,先看一段代码: var a=1; var b=2; function mytest(a,b){ var c=a+b; document.write(arguments[0]); } mytest(1,2); 以上代码可以输出传递给函数的第一个参数,也就是说通过类似于数组的索引值可以访问传递给函数的参数,而无需使用参数的名称.这里就介绍这么多了,希望能够给初学者一个最初的理解. 原文地址是

js理解参数-arguments对象

js理解参数-arguments对象: 1. ECMAScript函数的参数: ECMAScript函数的参数在内部是用一个数组来表示的,函数接收到的始终是这个数组,而不关心数组中包含多少个参数,也不在乎传进来的参数是什么数据类型. 在函数体内可以通过arguments对象来访问这个参数数组. 2. 关于命名参数的问题: ECMAScript函数中命名的参数只提供便利,但不是必需的.在ECMAScript中,解析器不会验证命名参数,而是通过访问arguments对象的length属性获得参数的个

javascript基础-arguments对象

arguments是函数内部自带的对象,它是一个类数组的存在,所谓的类数组就是没有数组的方法, 但可以通过下标来访问内部的元素,也有length属性.它的作用呢? 保存了函数调用的时候传入的实际的参数,通过length属性可知道传入参数的数量. 比如例子中的函数fn function fn(arg1,arg2,arg3,arg4) { //此时arguments.length不是4,因为它不是由声明函数时的形参数量决定的 //而是由调用fn时传入的参数的数量决定的 } fn(1,2,3); ar

JavaScript的arguments对象

1.在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性.arguments非常类似Array,但实际上又不是一个Array实例.可以通过如下代码得以证实(当然,实际上,在函数funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可). 1 Array.prototype.testArg = "test"; 2 function funcArg() { 3 alert(funcA

2015第37周五javascript函数arguments对象巧用一

Javascript函数的一个巧妙利用:假定action中有一个JSONObject类型的对象data,其值有可能为空,则前台JSP页面的JS代码中想直接通过EL表达式,即${data}的形式访问对象的值,则可能会因为data对象为空导致JS预处理错误,如JSP中有这样的代码,var obj=${data};,则当后台data为null时前台页面会变成var obj=;进而页面报错终止运行.有人想通过类似 var obj=('${data}'==''?{}:${data})来解决,但该代码依旧编

函数中的 arguments 对象

JavaScript函数具有像数组一样的对象,这些对象称为arguments,与传递给函数的参数相对应.传递给JavaScript函数的所有参数都可以使用arguments对象来引用. 现在我们开始学习,仔细看下面列出的代码: function add(num1, num2) { var res = num1 + num2; return res; } var r = add(7, 8); console.log(r); 在上面的函数中,num1和num2是两个参数.你可以使用名为num1和nu

arguments对象

ECMAScript函数不介意传递进来多少参数,也不会因为参数不统一而错误.实际上,函数体内可以通过arguments对象来接收传递进来的参数 . Function box(){ return arguments[0]+'|'+arguments[1]; //得到每次参数的值 } alert(box(1,2,3,4,5,6)); //传递参数 arguments对象的length属性可以得到参数的数量. function box(){ return arguments.length; //得到6

在js中arguments对象的理解

一.在函数调用的时候,浏览器每次都会传递进两个隐式参数 函数的上下文对象this 封装实参的对象arguments 二.arguments 对象 arguments 对象实际上是所在函数的一个内置类数组对象 每个函数都有一个arguments属性,表示函数的实参集合,这里的实参是重点,就是执行函数时实际传入的参数的集合.arguments不是数组而是一个对象,但它和数组很相似,所以通常称为类数组对象,以后看到类数组其实就表示arguments.arguments对象不能显式的创建,它只有在函数开