JavaScript 函數(shù)
函數(shù)是由事件驅(qū)動(dòng)的或是當(dāng)它被呼叫時(shí)執(zhí)行的可重複使用的程式碼區(qū)塊。
JavaScript 函數(shù)語法
函數(shù)就是包裹在花括號(hào)中的程式碼區(qū)塊,前面使用了關(guān)鍵字function:
#function?functionname()
{
執(zhí)行程式碼
}
當(dāng)呼叫函數(shù)時(shí),會(huì)執(zhí)行函數(shù)內(nèi)的程式碼。
可以在某事件發(fā)生時(shí)直接呼叫函數(shù)(例如當(dāng)使用者點(diǎn)擊按鈕時(shí)),並且可由 JavaScript 在任何位置進(jìn)行呼叫。
注意:JavaScript 對大小寫敏感。關(guān)鍵字 function 必須是小寫的,並且必須以與函數(shù)名稱相同的大小寫來呼叫函數(shù)。 ? ?
呼叫帶參數(shù)的函數(shù)
#在呼叫函數(shù)時(shí),您可以傳遞值,這些值稱為參數(shù)。
這些參數(shù)可以在函數(shù)中使用。
您可以傳送任意多的參數(shù),由逗號(hào)(,) 分隔:
myFunction(argument1,argument2)
當(dāng)您宣告函數(shù)時(shí),請把參數(shù)當(dāng)作變數(shù)來宣告:
##變數(shù)和參數(shù)必須以一致的順序出現(xiàn)。第一個(gè)變數(shù)是第一個(gè)被傳遞的參數(shù)的給定的值,以此類推。function myFunction(var1,var2)
{
程式碼
}
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <p>點(diǎn)擊這個(gè)按鈕,來調(diào)用帶參數(shù)的函數(shù)。</p> <button onclick="myFunction('哈利波特','Wizard')">點(diǎn)擊這里</button> <script> function myFunction(name,job){ alert("Welcome " + name + ", the " + job); } </script> </body> </html>上面的函數(shù)在按鈕被點(diǎn)擊時(shí)會(huì)提示 "Welcome 哈利波, the Wizard"。 運(yùn)行程式嘗試
帶有傳回值的函數(shù)
有時(shí),我們會(huì)希望函數(shù)將值傳回呼叫它的地方。
透過使用 return 語句就可以實(shí)現(xiàn)。
在使用 return 語句時(shí),函數(shù)會(huì)停止執(zhí)行,並傳回指定的值。
語法
function myFunction()
{
????var x=5;
????return x;
}
上面的函數(shù)會(huì)回傳值5。
注意:?整個(gè) JavaScript 並不會(huì)停止執(zhí)行,只是函數(shù)。 JavaScript 將繼續(xù)執(zhí)行程式碼,從呼叫函數(shù)的地方。
函數(shù)呼叫將會(huì)被傳回值取代:
var myVar=myFunction();
myVar 變數(shù)的值是5,也就是函數(shù)" myFunction()" 所傳回的值。
即使不把它儲(chǔ)存為變量,您也可以使用傳回值:
document.getElementById("demo").innerHTML=myFunction();
"demo" 元素的innerHTML 將會(huì)變成5,也就是函數(shù)"myFunction()" 所傳回的值。
您可以讓傳回值基於傳遞到函數(shù)中的參數(shù):
#實(shí)例
計(jì)算兩個(gè)數(shù)字的乘積,並傳回結(jié)果:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <p>本例調(diào)用的函數(shù)會(huì)執(zhí)行一個(gè)計(jì)算,然后返回結(jié)果:</p> <p id="demo"></p> <script> function myFunction(a,b){ return a*b; } document.getElementById("demo").innerHTML=myFunction(4,3); </script> </body> </html>
執(zhí)行程式看看結(jié)果
當(dāng)您僅僅希望退出函數(shù)時(shí),也可使用return 語句?;貍髦凳强蛇x的:
function myFunction(a,b)
{
if (a>b)
{
return;
}
x=a+b
}
如果a 大於b,則上面的程式碼將退出函數(shù),不會(huì)計(jì)算a 和b 的總和。
局部JavaScript 變數(shù)
#在JavaScript 函數(shù)內(nèi)部宣告的變數(shù)(使用var)是局部變量,所以只能在函數(shù)內(nèi)部訪問它。 (此變數(shù)的作用域是局部的)。
您可以在不同的函數(shù)中使用名稱相同的局部變量,因?yàn)橹挥行孢^該變數(shù)的函數(shù)才能辨識(shí)出該變數(shù)。
只要函數(shù)運(yùn)行完畢,本地變數(shù)就會(huì)被刪除。
全域JavaScript 變數(shù)
在函數(shù)外宣告的變數(shù)是全域變量,網(wǎng)頁上的所有腳本和函數(shù)都能存取它。
JavaScript 變數(shù)的生存期間
JavaScript 變數(shù)的生命期從它們被聲明的時(shí)間開始。
局部變數(shù)會(huì)在函數(shù)運(yùn)行以後被刪除。
全域變數(shù)會(huì)在頁面關(guān)閉後被刪除。
指派未宣告的JavaScript 變數(shù)