函式 (function) 是一段執行復合敘述的程式碼,運作的方式就像是人接收到指令,
在腦中分析統整後做出待辦清單,將事情一一完成。
function 的式子為:
function identifier (Arguments) {
statements...
return theValue;
}
identifier (標示):是函式的命名,最好使用駝峰式命名。
騎腳踏車出門 = ridingBikeToGoOut();
寫數學作業 = writingMathHomework();
Arguments 是引數、參數(列)的意思,放在 () 裡為了把資料傳給 function ,() 中可以有一個以上的引數。引數的資料形態不拘,通常是變數、數字、或者常數。
statements 就是放複合敘述啦~復合敘述記得要用大括號 {} 給他包起來
return: 回傳 function 值 (theValue) ,用在需要回傳值的地方。在回傳值的同時也同時結束函式。
如何呼叫函式?看看很常用的 alert();
跟 function(); 長得實在是太像了,由此可知呼叫方式就是打上 function(Arguments); 即可~
(在呼叫前別忘記先把函式寫好...)
函式好用的地方除了分類達到原始碼的整潔、將同類型的原始碼做整理歸納、重複利用以外,還可以避免原始碼互相影響,最好的例子就是全域變數跟區域變數:區域變數放在函式內,不會被全域變數互相影響。
以下大致整理函式的特點:
1. 整理歸納原始碼
要把雜物收進箱子裡,首先要做以下的事:打開箱子、把東西放進箱子、關箱子
openTheBox();
putIntoTheBox();
closeTheBox();
雖然看起來好像沒幾行,不過如果以後越寫越多或者隔很久才打開檔案,
可能會有看到天書般的感悟 orz
改成函式的話,只要記得去找函式即可:
function sortOutSomething() {
openTheBox();
putIntoTheBox();
closeTheBox();
}
2. 重複利用原始碼
聽說好的工程師們都很懶惰(這是稱讚),可以只做一次的事情怎麼可能還要做兩次以上?
這時候就讓 function 上場吧~
像上例已有收進箱子的函式,當我現在要在兩個地方都做一樣的事時,
只要呼叫函式,不必一項項複製貼上。
function RoomA() {
sortOutSomething();
}
function RoomB() {
sortOutSomething();
}
原始碼間不互相影響,以全域變數及區域變數為例
var hello = "world";
function myFunction() {
var hello = "kitty";
return hello;
}
alert(hello);
myFunction();
這時候 alert 出來的結果依然是 "world" ,myFunction() 的結果是 "kitty"
而函式的參數也類似區域變數的效果,函式內外不受影響(物件參數除外)
var kg = 50;
function Weight(kg) {
kg--;
}
alert(kg);
雖然函式內做了運算,但是 alert 結果還是 50
以上同步發表於 http://azzurro.blog.aznc.cc/learn_javascript_09/