javascript 函數(shù)
javascript 函數(shù)是被設(shè)計為執(zhí)行特定任務(wù)的代碼塊。
javascript 函數(shù)會在某代碼調(diào)用它時被執(zhí)行。
1. javascript 函數(shù)語法
javascript 函數(shù)通過 function 關(guān)鍵詞進(jìn)行定義,其后是函數(shù)名和括號 ()。
函數(shù)名可包含字母、數(shù)字、下劃線和美元符號(規(guī)則與變量名相同)。
圓括號可包括由逗號分隔的參數(shù):
(參數(shù) 1, 參數(shù) 2, ...)
由函數(shù)執(zhí)行的代碼被放置在花括號中:{}
function name(參數(shù) 1, 參數(shù) 2, 參數(shù) 3) { 要執(zhí)行的代碼 }
函數(shù)參數(shù)(function parameters)是在函數(shù)定義中所列的名稱。
函數(shù)參數(shù)(function arguments)是當(dāng)調(diào)用函數(shù)時由函數(shù)接收的真實的值。
在函數(shù)中,參數(shù)是局部變量。
在其他編程語言中,函數(shù)近似程序(procedure)或子程序(subroutine)。
范例
function myfunction(p1, p2) {
// 該函數(shù)返回 p1 和 p2 的乘積
return p1 * p2;
}
function myfunction(p1, p2) { // 該函數(shù)返回 p1 和 p2 的乘積 return p1 * p2; }
2. 函數(shù)調(diào)用
函數(shù)中的代碼將在其他代碼調(diào)用該函數(shù)時執(zhí)行:
- 當(dāng)事件發(fā)生時(當(dāng)用戶點(diǎn)擊按鈕時)
- 當(dāng) javascript 代碼調(diào)用時
- 自動的(自調(diào)用)
3. 函數(shù)返回
當(dāng) javascript 到達(dá) return 語句,函數(shù)將停止執(zhí)行。
如果函數(shù)被某條語句調(diào)用,javascript 將在調(diào)用語句之后“返回”執(zhí)行代碼。
函數(shù)通常會計算出返回值,這個返回值會返回給調(diào)用者。
范例
計算兩個數(shù)的乘積,并返回結(jié)果:
// 調(diào)用函數(shù),返回值被賦值給 x var x = myfunction(7, 8); function myfunction(a, b) { // 函數(shù)返回 a 和 b 的乘積 return a * b; }
x 的結(jié)果將是:
56
4. 為何使用函數(shù)?
您能夠?qū)Υa進(jìn)行復(fù)用:只要定義一次代碼,就可以多次使用它。
您能夠多次向同一函數(shù)傳遞不同的參數(shù),以產(chǎn)生不同的結(jié)果。
范例
把華氏度轉(zhuǎn)換為攝氏度:
function tocelsius(fahrenheit) { return (5/9) * (fahrenheit-32); } document.getelementbyid("demo").innerhtml = tocelsius(77);
5. () 運(yùn)算符調(diào)用函數(shù)
使用上面的例子,tocelsius 引用的是函數(shù)對象,而 tocelsius() 引用的是函數(shù)結(jié)果。
范例
訪問沒有 () 的函數(shù)將返回函數(shù)定義:
function tocelsius(fahrenheit) { return (5/9) * (fahrenheit-32); } document.getelementbyid("demo").innerhtml = tocelsius;
6. 用作變量值的函數(shù)
函數(shù)的使用方法與變量一致,在所有類型的公式、賦值和計算中。
范例
使用變量來存儲函數(shù)的值:
var x = tocelsius(77); var text = "the temperature is " + x + " celsius";
您能夠把函數(shù)當(dāng)做變量值直接使用:
var text = "the temperature is " + tocelsius(77) + " celsius";
7. 局部變量
在 javascript 函數(shù)中聲明的變量,會成為函數(shù)的局部變量。
局部變量只能在函數(shù)內(nèi)訪問。
范例
// 此處的代碼不能使用 carname function myfunction() { var carname = "volvo"; // code here can use carname } // 此處的代碼可以使用 carname
由于局部變量只能被其函數(shù)識別,因此可以在不同函數(shù)中使用相同名稱的變量。
局部變量在函數(shù)開始時創(chuàng)建,在函數(shù)完成時被刪除。