javascript定義函數(shù)的方法:1、使用“function 函數(shù)名(參數(shù)列表){執(zhí)行代碼}”語句;2、使用“var 變量名=function(參數(shù)列表){執(zhí)行代碼}”語句;3、使用“文檔對象.事件=function(){函數(shù)體}”語句。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
方法1:函數(shù)聲明–有名函數(shù)
基本語法如下:
function 函數(shù)名([參數(shù)列表]){ 函數(shù)體; [return [表達(dá)式;]] }
方法2:函數(shù)表達(dá)式–匿名函數(shù)
基本語法如下:
var fn = function([參數(shù)列表]){ 函數(shù)體; [return [表達(dá)式;]] }
函數(shù)表達(dá)式將匿名函數(shù)賦給一個變量,這樣調(diào)用匿名函數(shù)就可以通過這個變量來調(diào)用。
方法3:事件注冊形式
文檔對象.事件 = function(){ 函數(shù)體; }
說明如下:
1) 定義有名函數(shù)時必須指定函數(shù)名。
2) 函數(shù)名:可任意定義,但必須符合標(biāo)識符命名規(guī)范,且不能使用 JavaScript 的保留字和關(guān)鍵字。函數(shù)名一般首字母小寫,通常是動名詞,最好見名知意。如果函數(shù)名由多個單詞構(gòu)成,則單詞之間使用下劃線連接,如 get_name,或?qū)懗神劮迨?,?getName。
3) 參數(shù)列表:可選。它是用小括號括起來的 0 個以上的參數(shù),用于接收調(diào)用函數(shù)的參數(shù)傳參。沒有參數(shù)時,小括號也不能省略;如果有多個參數(shù),參數(shù)之間用逗號分隔。此時的參數(shù)就是一個變量,沒有具體的值,因而稱為虛參或形參。虛參在內(nèi)存中沒有分配存儲空間。在進(jìn)行參數(shù)傳遞時,虛參可以接受任意類型的數(shù)據(jù)。
4) 函數(shù)體:由大括號{}括起來的語句塊,用于實(shí)現(xiàn)函數(shù)功能。調(diào)用函數(shù)時將執(zhí)行函數(shù)體語句。
5) return[表達(dá)式]:可選。執(zhí)行該語句后將停止函數(shù)的執(zhí)行,并返回指定表達(dá)式的值。其中的表達(dá)式可以是任意表達(dá)式、變量或常量。如果沒有 return 語句或缺省表達(dá)式,函數(shù)將返回 undefined 值。
6) 事件注冊形式定義的匿名函數(shù)通常不需要 return 語句。
當(dāng)一個函數(shù)需要在多個地方調(diào)用時,需要定義為有名函數(shù)或函數(shù)表達(dá)式,而只用來處理一個對象的某個事件時則通常使用事件注冊定義形式的匿名函數(shù)。
需要注意的是,從變量提升內(nèi)容的介紹中,我們知道,有名函數(shù)的作用域可以提高到最前面,所以有名函數(shù)可以在定義前使用,而函數(shù)表達(dá)式則必須在定義后才可以使用。
示例1:
<script> function getMax(a,b){ if(a>b){ return a; }else{ return b; } } </script>
示例2:
<script> var getMax = function(a,b){ if(a>b){ return a; }else{ return b; } } </script>
示例3:
<script> window.onload = function(){ alert("hi"); }; </script>
【