1. 程式人生 > 實用技巧 >JavaScript-05 函式

JavaScript-05 函式

一、函式介紹

  函式也可以稱作方法,是將具有特定功能的程式碼寫在一塊。

  函式作用:提高程式碼的重用率以及可維護性。

二、語法

function  函式名(引數1,引數2,……,引數n){
 
     //具體的功能程式碼

}        

  函式的呼叫:函式名(值1,值2,……,值n);

  注意:1.函式的引數,是由程式設計師根據實際情況定義,稱為:“形參”;相當於程式碼中的變數。

     2.呼叫函式時:傳入的值,稱為 “實參”,可以確定引數的值和型別。傳值時 要注意引數個數以及型別,否則會出錯。

  引數包括:number、string 、Boolean 、 Object、Array、function

  例項:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
        function fn2(a,b){
            
var typ= typeof a; if(typ!="number" || (typeof b) !="number"){ console.error("傳入型別有誤!") return;//返回; } var res= a+b; document.write(res); } fn2(2,3);//5</script> </html>

  輸出結果為:5.

  注意:以函式做引數,往往稱為“回撥函式”。如果引數是 函式,只需要出入 函式名。

  以引數作為函式例項:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
        //作為引數的函式
        function fp(x,y){
             
            document.write("演示函式作為引數");
        }
        function fn4(ff){
            //使用 ff 函式
            document.write("準備呼叫 傳入的函式");
            document.write("===================<br>");
            ff();
        }
        //以函式做引數,往往稱為“回撥函式”
        //如果引數是 函式,只需要出入 函式名
        fn4(fp);
    </script>
</html>

  關於函式“形參”的數量和“實參”的數量 的判斷:

    1.arguments.length; // 實際傳入引數的 數量

    2.函式名.length 函式定義的 “形參”的數量

  例項:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
        function fn5(a,b,c,d){
            var n= arguments.length;//實際傳入引數的 數量
            var m= fn5.length;// 函式定義的  “形參”的數量
            if(n!=m){
                alert("引數個數不一致");
                return;
            }
            document.write(n);
            document.write(m);
            
        }
        
        fn5(1,2);
    </script>
</html>

  輸出結果為:引數個數不一致;

三、函式的返回值問題:

  作用:1.將函式內部的資料,帶到 函式外部; return x;
     2.結束當前的函式。 return;
    注意:寫在 return; 後面的程式碼將不會執行。
 返回值型別:包含了 js中所有型別
        number,string,Boolean,Array,Object,Function

  Javascript 中,沒有函式過載的概念。如果出現了相同的函式名,寫在後面的函式會覆蓋前面的“同名”函式。由於這種機制的存在,為我們修改框架中某些函式,提供了可能。

四、函式遞迴:自己呼叫自己,關鍵點是找到遞迴函式的出口。缺點:缺點:效率非常慢。

  例項:求 斐波拉契數列第30位的值。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
        
        /*求數列1,1,2,3,5,8,13........;   第30位上的值
         * Fn=F(n-1)+F(n-2),n>2;
         * F1=F2=1;
         * 
         * n:number 第幾位
         * 
         * */
        function fblq(n){
            if(n==1 || n==2){
                return 1;
            }else{
                return fblq(n-1)+fblq(n-2);
            }
        }
        var res=fblq(30);
        alert(res);
        
        
    </script>
</html>

  輸出結果:832040