自訂函數的意義在於「封裝重複使用的程式碼」,而由定義的參數提供程式碼所需的資料。
function 函數名稱 ( [參數 1] , [參數 2] ...) { ... }
函數名稱 ( [引數 1] , [引數 2] ...)
參考 MSDN 函式:https://msdn.microsoft.com/zh-tw/library/yh6c50h7(v=vs.94).aspx
1建立函數
每個函數小括號內提供參數值,每個值以一個變數或文字來表示,不需先定義再呼叫,順序可以自訂,因 JavaScript 會先找尋函數定義,然後才執行程式碼。嚴格來說,技術上函數定義的變數稱作「參數(Parameters)」,而在呼叫時傳遞函數的值稱作「引數(Arguments)」,引數和參數不一定要同名。命名規則
- 與變數名稱命名規則一樣:字元、數字和底線,不得數字開頭、JavaScript 保留字相同
-
命名應具有「描述性」,因當執行函數時,一般慣例是使用動詞,例如:addTask()、calculate()、init()(initialize 簡寫)
有時候會是「$」符號命名,代表是經常重複使用的程式碼,例如:jQuery 框架就是用類似的方法 - 大括號和小括號不得省略,執行程式碼盡可能以縮排作為視覺上呈現
定義函數
function 函數名稱 ( [參數 1] , [參數 2] ...) { ... }
function funcName(){ //不帶任何參數,表示這個函數無需傳遞值
...
}
function funcName(p1){ //帶一個參數
...
}
function funcName(p1, p2){ //多個參數需用逗號隔開
...
}
function funcName({num: 1, name: 'Domo'}){ //帶一個物件參數,建議還是先建立陣列或物件,再至函數的呼叫
}
傳值呼叫函數
函數名稱 ( [引數 1] , [引數 2] ...)
funcName();
funcName(a1, a2);
funcName({num: 1, name: 'Domo'});
function init(){
document.write('run init function.');
}
init();
function helloFunc(name, age){
document.write('Hello! ' + name + ', your age is ' + age + '.');
}
helloFunc('Domo', 24);
var myObj = new Object({num: 3, name: 'Domo'});
displayObj(myObj);
function displayObj(obj){
for(var p in obj){
document.write(p + ': ' + obj[p] + '
');
}
}