位置:首页 > 软件操作教程 > 编程开发 > JavaScript > 问题详情

JavaScript 函数 使用 arguments

提问人:刘团圆发布时间:2020-11-25

■知识点

    arguments对象表示函数的实参集合,仅能够在函数体内可见,并可以直接访问。 

    arguments对象是一个伪类数组,不能够继承Array的原型方法。可以使用数组下标的形式访问每个实参,如arguments[0]表示第1个实参,下标值从0开始,直到arguments.length-1。其中,length是arguments对象的属性,表示函数包含的实参个数。同时,arguments对象可以允许更新其包含的实参值。

■实例设计

    使用arguments对象能够增强函数应用的灵活性。例如,如果函数的参数个数不确定,或者函数参 数的个数很多,而又不想逐一定义每一个形参,则可以省略定义参数,直接在函数体内使用arguments 对象来访问调用函数的实参值。

【示例1】下面的示例定义一个求平均值的函数,函数借助arguments对象来计算参数的平均值。在 调用函数时,可以传入任意多个参数。

function avg (){                                   //求平均数

    var num =0, 1=0;                               //声明并初始化临时变量

    for(var i = 0; i < arguments.length; i ++ ){   //遍历所有实参

        if (typeof arguments [i] ! = "number")    //如果参数不是数值

            continue;                              //则忽略该参数值

        num += arguments[i];                       //计算参数的数值之和

        1 ++ ;                                    //计算参与和运算的参数个数

    }

    num /= 1;                                     //求平均值

    return num;                                   //返平均值

}

console.log(avg(1, 2, 3, 4));                     //返回2.5

console.log(avg(1, 2, n3n, 4));                   //返回2.3333333333333335

【示例2】在页面设计中经常需要验证表单输入值,下面的示例检测文本框中输入的值是否为合法的邮箱地址。

function isEmail(){

    if (arguments . length>l) throw new Error (”只能够传递一个参数");  //检测参数个数

    var regexp = /A\w+((-\w+)|(\.\w+))*\@[A-Za-zO-9]+

((\.I-) [A-Za-z0-9]+)*\.[A-Za-zO-9]+$/;                //定义正则表达式

    if (arguments[0].search(regexp)!= -1)              //匹配实参的值

        return true;                                   //如果匹配则返回true

    else

        return false;                              //如果不匹配则返回false

}

var email = "zhangsan@css21.cnn";                 //声明并初始化邮箱地址字符串

console.log(isEmail(email));                      //返回true

    arguments对象是伪类数组,不是数组,可以通过length属性和中括号语法来遍历或访问实参的值。不过,通过动态调用的方式,也可以使用数组的方法,如push、pop、slice等。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部