JavaScript定義函數(shù)
定義函數(shù)
在JavaScript中,定義函數(shù)的方式如下:
function abs(x) { if (x >= 0) { return x; } else { return -x; } }
上述abs()函數(shù)的定義如下:
function指出這是一個(gè)函數(shù)定義;
abs是函數(shù)的名稱;
(x)括號(hào)內(nèi)列出函數(shù)的參數(shù),多個(gè)參數(shù)以,分隔;
{ ... }之間的代碼是函數(shù)體,可以包含若干語(yǔ)句,甚至可以沒(méi)有任何語(yǔ)句。
請(qǐng)注意,函數(shù)體內(nèi)部的語(yǔ)句在執(zhí)行時(shí),一旦執(zhí)行到return時(shí),函數(shù)就執(zhí)行完畢,并將結(jié)果返回。因此,函數(shù)內(nèi)部通過(guò)條件判斷和循環(huán)可以實(shí)現(xiàn)非常復(fù)雜的邏輯。
如果沒(méi)有return語(yǔ)句,函數(shù)執(zhí)行完畢后也會(huì)返回結(jié)果,只是結(jié)果為undefined。
由于JavaScript的函數(shù)也是一個(gè)對(duì)象,上述定義的abs()函數(shù)實(shí)際上是一個(gè)函數(shù)對(duì)象,而函數(shù)名abs可以視為指向該函數(shù)的變量。
因此,第二種定義函數(shù)的方式如下:
var abs = function (x) { if (x >= 0) { return x; } else { return -x; } };
在這種方式下,function (x) { ... }是一個(gè)匿名函數(shù),它沒(méi)有函數(shù)名。但是,這個(gè)匿名函數(shù)賦值給了變量abs,所以,通過(guò)變量abs就可以調(diào)用該函數(shù)。
上述兩種定義完全等價(jià),注意第二種方式按照完整語(yǔ)法需要在函數(shù)體末尾加一個(gè);,表示賦值語(yǔ)句結(jié)束。
我們完成對(duì)兩個(gè)數(shù)求和并顯示結(jié)果的功能。并給函數(shù)起個(gè)有意義的名字:“add2”,代碼如下:
<!DOCTYPE html> <html> <body> <script type="text/javascript"> function add2(){ sum = 3 + 2; alert(sum); } add2(); </script> </body> </html>
結(jié)果:?