zoukankan      html  css  js  c++  java
  • 第十篇--------javascript函数-参数

    javascript函数的参数:形参,实参

          //function 参数
                
                //形参列表
                function test(a,b,c,d){    
                    //alert(test.length);        //形参个数,4个
                    
                    //函数的实际参数,内部就是用一个数组去接收函数的实际参数
                    //arguments 对象,可以访问函数的实际参数
            //arguments 对象只能在函数的内部使用
    alert(arguments.length); //2个 alert(arguments[0]); //10 alert(arguments[1]); //20 return a+b; } alert(test(10,20)); //30,函数的形参和实际参数不一致不会报错。

    但是这样写程序不严谨,我们希望的是只有形参和实参个数一致 的时候才去执行函数,否则抛出异常或者给一个提示

    所以加上判断:

    if(test.length == arguments.length){
           return a+b;
      }else{
           return '参数不正确!';
    }

    还有问题,test.length虽然能够取到形参的个数,但是一般不这么用,会有潜在性的问题。一般用arguments.callee例子:

          //递归
                function fact(num){
                    if(num<=1) return 1;
                    else 
                    return num*fact(num-1);    
                }
                var F = fact ;    //你把fact 赋值给了变量 F,相当于复制了一份
                fact = null;    //假设有其他人把 fact 弄成了null,
                alert(F(5));    //报错

    但是用arguments.callee来代替fact这样写就不会报错了:

          //递归
                function fact(num){
                    if(num<=1) return 1;
                    else 
                    return num*arguments.callee(num-1);    //使用arguments.callee,指向函数本身
                }
                var F = fact ;    //你把fact 赋值给了变量 F,相当于复制了一份
                fact = null;    //假设有其他人把 fact 弄成了null
                alert(F(5));    

    所以上边的用取形参也不用test.length,也使用arguments.callee.length:

    if(arguments.callee.length == arguments.length){
             return a+b;
     }else{
            return '参数不正确!';
     }
    

     总结:

  • 相关阅读:
    进程与线程
    linux网关服务器
    linux硬盘分区和fdisk命令
    MyISAM与InnoDB两者之间区别与选择(转)
    系统吞吐量与QPS/TPS
    linux最大打开文件句柄数
    内存性能测试 Memtester+mbw
    硬盘性能测试
    使用JNA访问WindowsAPI操作Windows窗口元素
    [博客页面装饰]----[人体时钟]插件
  • 原文地址:https://www.cnblogs.com/lihaoyang/p/5791306.html
Copyright © 2011-2022 走看看