基礎觀念30 min read
Day 6:把程式打包:函式與陣列
函式像果汁機、陣列像一整排置物櫃,搞懂參數與回傳值的差別,並學會用迴圈走訪陣列。
寫程式久了你會發現,很多動作其實一直在重複用。今天要學兩個超級好用的工具,讓程式碼變乾淨、變好管理。這是 13 天轉職甄試衝刺大綱的 Day 6。
📅 前言:把常做的事打包起來
如果每次要「算稅後金額」都要重新寫一次公式,程式碼會又臭又長。更好的做法是:把這個動作「打包」成一台機器,以後要用的時候直接丟資料進去就好——這就是函式。而如果要處理「一整排」資料,例如全班的成績,我們會需要陣列。
⏳ 第 1~15 分鐘:函式(Function)是什麼?
💡 生活比喻: 函式就像一台果汁機。你丟水果進去(參數),它經過處理,吐出果汁(回傳值)。你不需要知道果汁機裡面刀片怎麼轉,只需要知道「丟什麼進去、會拿到什麼」。
function getJuice(fruit) {
return fruit + " 果汁";
}
console.log(getJuice("蘋果")); // 蘋果 果汁
console.log(getJuice("芭樂")); // 芭樂 果汁
- 參數(fruit): 丟進函式的原料。
- 回傳值(return 後面的東西): 函式做完事情後,交還給你的結果。
⚠️ 常見考點:參數 vs 回傳值。 有些函式只做事、不回傳任何東西(例如
console.log本身只是把字印出來,沒有 return);有些函式做完事情後,一定要用return把結果交出去,呼叫的人才能拿到這個結果繼續使用。
⏳ 第 16~23 分鐘:陣列(Array)是什麼?
💡 生活比喻: 陣列就像一整排排好隊、有編號的置物櫃。第一個櫃子的編號不是 1,而是 0(這是新手最容易搞混的地方)。
let fruits = ["蘋果", "香蕉", "芭樂"];
console.log(fruits[0]); // 蘋果(第一個)
console.log(fruits[1]); // 香蕉(第二個)
console.log(fruits.length); // 3(總共有幾個)
⏳ 第 24~30 分鐘:走訪陣列(把每個元素拿出來處理)
最常見的用法,是搭配昨天學的迴圈,把陣列裡「每一個」元素都拿出來做事情:
let fruits = ["蘋果", "香蕉", "芭樂"];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i] + " 果汁");
}
// 依序印出:蘋果 果汁 / 香蕉 果汁 / 芭樂 果汁
💡 為什麼條件是
i < fruits.length不是i <= fruits.length? 因為陣列從 0 開始編號,3 個元素的索引是 0、1、2,最大索引永遠是「長度 - 1」。如果寫成<=,最後一次會去存取一個不存在的位置,程式會出錯或得到undefined。
🎯 目標
- 能解釋函式的參數與回傳值差別
- 能讀懂並手寫走訪陣列的迴圈,不搞混索引從 0 開始這件事
📝 重點筆記
- 函式 = 打包好的動作,丟參數進去、可能會回傳結果出來
- 陣列的索引從
0開始,最後一個元素的索引是長度 - 1 - 走訪陣列的標準寫法:
for (let i = 0; i < arr.length; i++)
✍️ 小練習
- 寫一個函式
double(n),回傳n的兩倍 - 有一個陣列
let nums = [3, 7, 2, 9],用迴圈把每個數字都印出來 - 承上題,寫一個迴圈把
nums裡所有數字加總起來