JavaScript 函数参数(与Python,Shell做对比)

本文探讨了JavaScript中函数参数的灵活性,通过arguments对象来处理不定数量的参数,并与Python中的参数处理方式进行比较。同时讨论了JavaScript中不存在函数重载的特点。

    最近学了一段时间的Shell之后,发现Javascript的函数参数跟shell惊人的类似。

   

function show(){
      
}

 

 

    这里的函数不同于强类型语言的函数,在那些语言中,函数参数的个数和类型都是确定的。而在JS中函数的参数没那么重要,在JS函数内部里面用一个称之为arguments的对象来保存参数,这个对象很类似于数组(是因为它也同样可以采用arguments[0],arguments[1]..)这样的形式来获取参数。

    例如在调用上述函数的时候,以下几种方式都是允许的。

  

show()
show("love","money")

 

   所以可以利用这点来模拟实现Python中指定默认参数值。见以下代码:

  

function add(){
     if(arguments.length==1){
          return arguments[0]+10;
     }else{
         return arguments[0]+arguments[1];
     }
}

 

这段代码用来计算两个参数值的和。

 

add(5);//输出15
add(5,10); //也输出15

 而在Python中实现这个功能要简单的多。

   

def add(num1,num2=10):
        return num1+num2;

 

  JS里函数也同样没有重载,因为它没有函数签名这样的概念,这一点跟Python很类似。只是在JS中当存在同名函数的时候,后面一个函数对象会悄悄的覆盖掉之前定义的所有函数。而Python会在函数调用的时候提示错误,例如:

   

function add(num1){
    return num1+1;
}
function add(num1,num2){
    return num1+2;
}
alert(add(3))
//输出5

 

    在Python中则是另外一种情况

   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值