FE Interview Hub
JavaScript 基礎

高階函式 (Higher Order Function) 是什麼?

AI 練習作答

定義

高階函式(Higher-Order Function) 是指滿足以下至少一個條件的函式:

  1. 接受函式作為參數
  2. 回傳一個函式

這是函數式程式設計(Functional Programming)的核心概念,JavaScript 作為一等函式(First-Class Function)語言,天然支援高階函式。

範例

1. 接受函式作為參數

// map、filter、reduce 都是高階函式
const numbers = [1, 2, 3, 4, 5];

const doubled = numbers.map(n => n * 2);    // [2, 4, 6, 8, 10]
const evens = numbers.filter(n => n % 2 === 0); // [2, 4]
const sum = numbers.reduce((acc, n) => acc + n, 0); // 15

// 自訂高階函式
function applyToAll(arr, fn) {
  return arr.map(fn);
}
applyToAll([1, 2, 3], x => x * x); // [1, 4, 9]

2. 回傳一個函式

// 函式工廠
function multiplier(factor) {
  return function(number) {
    return number * factor;
  };
}

const double = multiplier(2);
const triple = multiplier(3);

double(5); // 10
triple(5); // 15

3. Currying(柯里化)

const add = a => b => a + b;
const add5 = add(5);
add5(3); // 8
add5(10); // 15

優點

  • 可複用性高:通用邏輯與具體操作分離
  • 程式碼簡潔:減少重複程式碼
  • 組合性強:函式可以自由組合
  • 易於測試:純函式(Pure Function)沒有副作用

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分