functionadd(a, b){console.log(a +" + "+ b +" = "+ (a + b));}add(2,3); // 2 + 3 = 5add(8,10); // 8 + 10 = 18// 參數不足時,會有 undefined 的狀況,此例的 b 就是 undefinedadd(8); // 8 + undefined = NaN
參數預設值
看以下例子,瞭解參數有預設值的寫法:
functionadd(a =1, b =2){ // a 的預設值是 1;b 的預設值是 2console.log(a +" + "+ b +" = "+ (a + b));}add(); // 1 + 2 = 3add(8); // 8 + 2 = 10add(8,10); // 8 + 10 = 18
函式的回傳值
使用關鍵字 return 將結果回傳,同時也結束函式的執行:
functionsubtraction(a, b){var result = a - b;return result; // 回傳結果,並結束函式的執行console.log("會執行到這行程式嗎"); // 不會}var my_num =subtraction(5,2);console.log("結果等於 "+ my_num);/*結果等於 3*/
匿名函式(Anonymous Function)
函式沒有名稱,就是匿名函式,通常這種情況,可以將匿名函式存在某個變數中:
varmy_function=function(a, b){var result = a + b;return result;};var function_reuslt =my_function(5,2);console.log("執行結果 "+ function_reuslt);/*執行結果 7*/
迴呼函式(Callback Function)
概念:某件事情執行完之後,執行另外一件事。
執行這段程式,試著解讀:
functionadd(a, b, cb){let sum = a + b;returncb(sum,2);}functiondivision(sum, denominator){let avg = sum / denominator;return avg;}let result =add(4,8, division);console.log(result); // 6
換個寫法,以下的 匿名函式 就是 Callback Function:
functionadd(a, b, cb){let sum = a + b;returncb(sum,2);}// 第三個參數 function,就是一個 callback functionlet result =add(6,8,function(sum, denominator){let avg = sum / denominator;return avg;});console.log(result); // 7