美文网首页
arguments用法

arguments用法

作者: Artifacts | 来源:发表于2019-08-22 00:22 被阅读0次

参考
arguments指的是函数内置的实参集合
JS的一个内置对象,JS传的是形参,可传可不传,若方法里没有写参数却传入了参数,需要用arguments拿到参数

  • arguments转换成一个真正的数组
var args = Array.prototype.slice.call(arguments);  //现在args就是一个标准的js数组了,可以使用数组的标准方法了。
  • 特性:
    arguments对象和Function是分不开的。因为arguments这个对象不能显式创建,arguments对象只有函数开始时才可用。
  • 使用方法:
    虽然arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的方式相同
    例如:
arguments[0],arguments[1],.....arguments[n],

在js中 不需要明确指出参数名,就能访问它们,例如:

function test() {
        var s = "";
        for (var i = 0; i < arguments.length; i++) {
            alert(arguments[i]);
            s += arguments[i] + ",";
        }
        return s;
    }
    test("name", "age")

输出结果:

name,age

每一个对象都有自己的属性,arguments对象也不例外,首先arguments的访问犹如Array对象一样,
用0到arguments.length-1来枚举每一个元素。下面我们来看看callee属性,返回正被执行的 Function 对象,
也就是所指定的 Function 对象的正文。callee 属性是 arguments对象的一个成员,仅当相关函数正在执行时才可用。
callee 属性的初始值就是正被执行的 Function 对象,这允许匿名的递归函数。

var sum = function (n) {
        if (1 == n) {
            return 1;
        } else {
            return n + arguments.callee(n - 1);
        }
    }
    alert(sum(6));

通俗一点就是,arguments此对象大多用来针对同个方法多处调用并且传递参数个数不一样时进行使用。根据arguments的索引来判断执行的方法。


// arguments函数内置的实参集合
// 任意数求和(执行函数的时候,传递N个值实现求和)
/*
 *1.传递实参的个数不定
 *2.传递的值是否为有效数字不定
 *  =>把传递的有效数字进行相加求和 
 * arguments函数内置的实参集合
 * 1.类数组集合,集合中存储着所有函数执行时,传递的实参信息
 * 2.不论是否设置形参,arguments都存在
 * 3.不论是否传递实参,arguments也都存在
 * argumenys.callee:存储的是当前函数本身(js严格模式下禁止使用这些属性)
 */
function sum(){
    // console.log(arguments,n,m);
    let total = null;
    for(let i = 0;i<arguments.length;i++){
        // 获取的每一项的结果都要先转化为数字(数学运算)
        let item = Number(arguments[i]);
        // 非有效数字不加
        if(isNaN(item)){
            continue;
        }
        total +=item;
    }
    return total;
}
let total = sum(10,20,30,40);
console.log(total);//100

total = sum(10,20);
console.log(total);//30

total = sum(10,20,'30');
console.log(total);//3030

total = sum(10,'AA');
console.log(total);//30AA

相关文章

  • arguments用法

    参考arguments指的是函数内置的实参集合JS的一个内置对象,JS传的是形参,可传可不传,若方法里没有写参数却...

  • arguments用法

    es5 es6箭头函数

  • 【JS】函数实参与形参

    本节目录 形参 实参 arguments的特性 arguments的非标准用法 arguments小案例 1.形参...

  • laravel-artisan命令翻译

    ##artisan usage 用法 comand [options] [arguments] 命令 选择 参数 ...

  • arguments.callee用法  

    arguments.callee用法 arguments.callee 在哪一个函数中运行,它就代表哪个函数。 一...

  • arguments.callee用法

    arguments.callee 在哪一个函数中运行,它就代表哪一个函数。 一般用在匿名函数中。 在匿名函数中有时...

  • arguments.callee用法

    argument.callee 在那个函数中运行,他就代表哪一个函数。一般用在匿名函数中。在匿名函数中有时候需要自...

  • ggpubr包系列学习教程(九)

    使用ggstripchart函数绘制线带图 加载所需R包 基本用法: Usage 常用参数: Arguments ...

  • ggpubr包系列学习教程(六)

    使用ggscatter函数绘制散点图 加载所需R包 基本用法: Usage 常用参数: Arguments 使用示...

  • ggpubr包系列学习教程(十三)

    使用ggerrorplot函数绘制误差棒图 加载所需R包 基本用法: Usage 常用参数: Arguments ...

网友评论

      本文标题:arguments用法

      本文链接:https://www.haomeiwen.com/subject/gotgsctx.html