• 细说javascript函数


            javascript函数是一个比较奇怪的东西,接触一段时间你就会犯迷糊,弄不明白它到底是什么了。你是否会因为有的javascript函数没有名字而莫名其妙,是否会因为javascript函数的参数没有类型而抓狂,是否为javascript函数以表达式的形态存在而彻底崩溃。正是因为有了这些烦恼才让javascript函数值得我们寻味,我想从函数的构成来细说函数,这听起来像是一句废话,讲任何东西当然是从构成去谈,但是由于javascript函数你确实捉摸不了它的形态,因此这里我是从一个标准函数的构成来细说。

    1.函数名

            在面向对象语言中,函数一般都有名称,但javascript函数不一定,这类函数称为匿名函数或者函数直接量。它就像是一个表达式,然后这个表达式的左值即可以用来调用函数,也可以存储在变量中传递给其它的函数。它的好处就是不用每次调用的时候创建新的对象。

    var f= function (x) {return x*x;};
    alert( f(6) );

            以上例子就会在页面上弹出窗口显示36

    2.参数

            javascript函数的参数也比较神奇,调用javascript函数时如果填写的参数和函数定义的参数不一致(例如个数不一致),程序不会出错,有时甚至能调用成功,这对于java语言是无法想象的,但javascript函数可以做到。例如上面的例子,我们这样调用:

    alert(f(6,7))


            结果仍然是36。虽然这样不会出错,但是我们仍然想函数被正确的调用,保证调用时和函数定义的参数数目一致。通过Arguments对象可以获取函数调用者的参数数目。修改上述代码。

    var f= function (x) {
       if(arguments.length>1) {
           return "out of range";
       } else {
           return x*x;
       }
    };
    
    alert( f(6,7) );
    

            处理获取函数调用者的参数数目,还可以获取到这些参数的值,将上述代码再进行一番修改:

    var f= function (x) {
       if(arguments.length>1) {
           return arguments[0]*arguments[1];
       } else {
           return x*x;
       }
    };
    alert( f(6,7) );
    
    

            你能猜出结果是多少吗?对,是42。
     

  • 相关阅读:
    selenium2学习:Page object
    selenium2学习:单元测试框架(6):自动发送邮件
    selenium2学习:单元测试框架(5):html测试报告
    selenium2学习:单元测试框架(4):Fixtures
    selenium2学习:单元测试框架(3):执行多级目录的用例、打印报告、跳过执行
    selenium2学习:单元测试框架(2):Discover
    优雅的找出ArrayList中重复的元素
    IntelliJ IDEA2017 + tomcat 即改即生效 实现热部署
    ContentType与SpiringMvc
    Mybatis批量更新比较
  • 原文地址:https://www.cnblogs.com/james1207/p/3290252.html
Copyright © 2020-2023  润新知