• 函数的运用


       在JavaScript里,函数也算是一种数据类型。不同于int、string、float等基本型,也不属于object等引用类型,函数,即function是一种特殊的对象。

    一、函数的基本写法

          你可以把function当成如java中的方法一样。

    1 function fun_name(){  
    2        alert(1111);  
    3     }</span>  

           调用它:

    1 <script>  
    2    window.onload=fun_name();  
    3 </script>

         也可以当成一个普通的数据类型一般,赋给一个变量,

        1如:

    1 <script>  
    2     function fun_name(){  
    3       alert(1111);  
    4     }  
    5     var fun =  fun_name();  
    6 </script>

          2甚至也可以这样写:

    1    <script>  
    2         var fun = function(){  
    3           alert(2);  
    4         }  
    5    </script>

         3你还能把function当成一个object,需要new之后,让系统分配给它一个内存之后才能使用它:

    1 <script>  
    2         function fun_name(arg){  
    3             this.arg = arg;  
    4             alert(this.arg);  
    5         }  
    6         var fun = new fun_name(2);  
    7  </script>

        上面所说的3中方法,1就是我们常用的经典型,2我们则称之为函数字面量3我们就以它的实现方法称之为构造函数

        如2一般没有函数名称的函数,我们一般称之为匿名函数


    二、匿名函数的代码模式

        如果你经常看Jquery,则会发现在Jquery中大量用到一下这种写法。

    1function(){  
    2        alert(11);  
    3       })(); 

        其中这是匿名函数的几种代码模式之一。

        通常我们这样写

    1 var fun = function(){  
    2   alert(111);  
    3 }

    不会有任何执行结果,这只是一个单纯的赋值。

        想让匿名函数能自动执行,我们可以参照一下几种代码模式。

        1一种就是上述所写的那样,先写一个函数字面量,然后执行它。

    1function(){  
    2    alert(11);  
    3   })(); 

        2还有一种优先执行法,用圆括号强制执行。

    1function(){  
    2        alert(11);  
    3    }()) 

       3此外还有一个void操作符

    1    void funtion(){  
    2        alert(111);  
    3     } 
    

     

    三、函数声明和函数表达式   

    JavaScript里的函数声明与函数表达式是有区别的。在JavaScript中有一个叫做函数提升的过程,即在执行时,会首先执行函数声明,使其在执行代码时可以用到。

    如:

    1 alert(sum(1,2));
    2 function sum(num1,num2){
    3      return num1+num2;
    4 }

    这段代码是能够完美执行的。

    但函数表达式则不一样:

    alert(sum(1,2));
    var sum = function(num1,num2){
        return num1 + num2;
    }

    因为函数表达式在执行到时才被编译,所以在alert中还不能调用sum函数,最终导致报错。
    除此之外,函数声明与函数表达式等价的。

    关于JavaScript的函数运用,如果想知道更详细,还可以参考《用函数式编程技术编写优美的 JavaScript》


        这篇只是我的学习总结,如果错误请各位指点。

  • 相关阅读:
    Java学习--list,set,Map接口使用
    Java学习--java中的集合框架、Collection接口、list接口
    Java学习--使用 Math 类操作数据
    Java学习--Calendar 类的应用
    Java学习--使用 Date 和 SimpleDateFormat 类表示时间
    Java学习--Java 中基本类型和字符串之间的转换
    Java学习网址
    Java开发学习--Java 中基本类型和包装类之间的转换
    Java学习--Java 中的包装类
    builtroot make menuconfig流程
  • 原文地址:https://www.cnblogs.com/nonkicat/p/2480946.html
Copyright © 2020-2023  润新知