DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> 4.4 幾種特殊的函數
4.4 幾種特殊的函數
編輯:JavaScript基礎知識     

在了解了函數的定義和函數調用外,下面我們來介紹一下JavaScript中幾種特殊的函數。

JavaScript特殊函數有3種:

  • (1)嵌套函數;
  • (2)遞歸函數;
  • (3)內置函數;

下面詳細給大家講解一下這3中函數調用方式。

一、嵌套函數

嵌套函數,顧名思義,就是在一個函數的內部定義另外一個函數。不過在內部定義的函數只能在內部調用,如果在外部調用,就會出錯。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        //定義階乘函數
         function fun(a)
         {
             //嵌套函數定義,計算平方值的函數
             function multi (x)
             {
                 return x*x;
             }
             var m=1;
             for(var i=1;i<=multi(a);i++)
             {
                 m=m*i;
             }
             return m;
         }
         var sum =fun(2)+fun(3);
         document.write(sum);
    </script>
</head>
<body>
</body>
</html>

在浏覽器預覽效果如下:

分析:

上面定義的multi函數只能在fun函數內部使用,如果在fun函數外部調用就會出錯,大家可以在“在線測試”中自己修改代碼測試一下。

二、遞歸函數

遞歸函數是一種非常重要的編程技術,當年我在學習其他編程技術(如C、C++、Java等)都經常用到。

遞歸函數用於讓一個函數從其內部調用其本身。不過需要注意的是,如果遞歸函數處理不當,就會使程序陷入“死循環”。為了防止“死循環”的出現,可以設計一個做自加運算的變量,用於記錄函數自身調用的次數,如果次數太多就讓它自動退出循環。

語法:

 
function 遞歸函數名(參數1)
{
    遞歸函數名(參數2)
}

說明:

在定義遞歸函數時,需要2個必要條件:

(1)首先包括一個結束遞歸的條件;

(2)其次包括一個遞歸調用的語句;

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
         var msg="\n函數的遞歸調用:\n\n";
         //響應按鈕的點擊事件
         function Test()
         {
             var result;
             msg+="調用語句:\n";
             msg+="    result=sum(20);\n";
             msg+="調用步驟:\n";
             result=sum(20);
             msg+="計算結果:\n";
             msg+="    result="+result+"\n";
             alert(msg);
         }
         //計算當前步驟加和值
         function sum(m)
         {
             if(m==0)
             {
                 return 0;
             }
             else
             {
                 msg+="    result="+m+"+sum("+(m-2)+ ");\n";
                 result=m+sum(m-2);
             }
             return result;
         }
    </script>
</head>
<body>
    <input type="button" value="測試" onclick="Test()"/>
</body>
</html>

在浏覽器預覽效果如下:

分析:

在上述代碼中,為了求取20以內的偶數和,定義了遞歸函數sum(m),而函數Test()對其進行調用,並使用alert()方法彈出相應的提示信息。

遞歸函數對於初學者來說可能比較難以理解,如果實在不會,可以直接忽略它。因為在JavaScript中是比較少用到遞歸函數的,遞歸函數往往都是在其他編程語言中用得比較多。到時候需要的時候我們回來翻翻就OK了。

三、內置函數

JavaScript中有2種函數:一種是用戶自定義函數,另外一種是JavaScript語言內部已經定義好了,可以直接供我們調用的函數(也就是內置函數)。

內置函數由於已經在JavaScript語言內部定義好了的,也就是我們不需要自己定義就能用了。這樣極大方便了我們的編程。

關於JavaScript內置函數,我們在下一章詳細為大家講解。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved