跳至主要内容

🐄 函式

把重複的邏輯包成函式,需要時呼叫一次,程式更好讀、更好改。

你會用到什麼

步驟 1:宣告與呼叫

function sayHello() {
console.log("你好!");
}

sayHello();
sayHello();

步驟 2:參數

function greet(name) {
console.log("你好," + name);
}

greet("小明");
greet("小華");

步驟 3:回傳值 return

function add(a, b) {
return a + b;
}

const sum = add(3, 5);
console.log(sum); // 8

return 之後的程式不會再執行。

步驟 4:箭頭函式(簡寫)

const double = (n) => {
return n * 2;
};

const triple = (n) => n * 3; // 單行可省略 return

事件處理與 fetch 很常看到箭頭函式,語意與一般函式相近。

步驟 5:格式化自我介紹

function formatProfile(name, city, hobby) {
return `我是${name},來自${city},喜歡${hobby}`;
}

const intro = formatProfile("小明", "台北", "寫網頁");
console.log(intro);

步驟 6:搭配陣列使用

function formatList(items) {
let result = "";
for (let i = 0; i < items.length; i++) {
result += "- " + items[i] + "\n";
}
return result;
}

const skills = ["HTML", "CSS", "JavaScript"];
console.log(formatList(skills));

動手做

profile.js 實作:

  1. formatProfile(name, role) 回傳一句自我介紹字串。
  2. isAdult(age) 回傳 true / false(18 歲以上為 true)。
  3. console.log 測試兩個函式。

完成標準formatProfile("你", "學生") 印出完整句子;isAdult(20) 為 true、isAdult(15) 為 false。

常見卡關

問題解法
函式沒執行是否只宣告忘記加 () 呼叫?
回傳一直是 undefined是否漏了 return
參數順序錯呼叫時依宣告順序傳入

參考