js基础 arguments的理解与使用

arguments是JS的一个内置对象,我们知道在js中传递的是形参,如果我们没有写参数,却传入了参数,该怎么拿到这个参数呢?arguments可以帮我们拿到这个参数。每一个函数都有一个arguments对象,它包括了函数所要调的参数,通常我们把它当作数组使用,用它的arguments.length得到参数数量,argument[i]获得传入的下标为i的参数值。

arguments.length——获得传入的参数个数!

argument[i]——获得传入的下标为i的参数值。

另外我们还需要知道的是arguments对象只有函数开始时才可用。

使用方法:

例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
<script>
    function one(){
        var mingzi = '';
        var len = arguments.length;
        for(var i=0;i<len;i++){
            mingzi+= arguments[i];
        }
        document.write(mingzi)		
    }
    one('李','三','刀')
</script>
</body>
</html>

在js语法中不支持重载,但是我们可以用arguments来模拟重载,什么是重载呢?就是在js中一个函数可以重复使用而且不会被覆盖。

下面这个例子就是函数名相同但是参数不相同:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
<script>
    function two(a,b){
        var sum = a+b;
        document.write(sum)
    }
    two(5,4)
    function two(c,d,e){
        var sum1 = c*d*e;
        document.write(sum1)
    }
    two(8,4,1)
    //输出的结果是 NaN32 ,可以看出来把第一个函数覆盖掉了。
</script>
</body>
</html>

那我们使用arguments就可以轻松解决这个问题了,请看下面的例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
    function two(){
        var len = arguments.length;
        if(len==2){
            var sum=0;
            for(var i=0;i<len;i++){
            sum+=arguments[i];
            }
        }else if(len>2){
            var sum=1;
            for(var i=0;i<len;i++){
            sum*=arguments[i];
        }
    }	
        document.write(sum+" ");
    }
    two(5,4);
    two(8,4,1);
    //输出的结果为9 32,说明我们的同名函数没有被覆盖,可以重复利用。
</script>
</body>
</html>

如果有不对的地方请大家指出来,一起学习,一起进步。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值