iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Modern Web

致 JavaScript 開發者的 Functional Programming 新手指南 系列

「請問你知道什麼是 FP 嗎?」使用 JavaScript 這門程式語言開發網頁的工程師,或多或少曾經被你的面試官這麼問過吧。
然而真的去 Google 這個關鍵字時,會發現大部分的文章充滿「 Ramda 演算、純函式、高階函式、柯理化」等關鍵字、艱深且又學術的內容。
還沒開始研究,但已經感到壓力山大⋯⋯
《致 JavaScript 開發者的 Functional Programming 新手指南》,紀錄了一個新手開發者從零開始學習 FP 的學習脈絡,希望大家可以透過更簡單的方式了解這個設計模式,希望大家可以透過更簡單的方式了解這個設計模式,讓自己的程式碼更加脈絡化與系統化。

鐵人鍊成 | 共 30 篇文章 | 41 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21 :什麼是 Currying(3)?JavaScript 閉包

當說到閉包時,大家會有什麼樣的想法呢?是覺得它不太會在日常開發中出現,所以很少用,還是單純把閉包當成是一個面試題而已? 經過先前的章節介紹,我們了解到其實 Ja...

2022-09-23 ‧ 由 Vivian Yeh 分享
DAY 22

Day 22 :什麼是 Currying(4)?自己動手寫一個 Curry 吧!

在先前的文章中,我們花了很多的時間來討論閉包,這是為什麼呢?因為在 FP 中,如果我們想要更有效率、更嚴謹的方法來撰寫函式,了解函式在呼叫堆疊中的運行模式可以說...

2022-09-24 ‧ 由 Vivian Yeh 分享
DAY 23

Day 23 :高階函數與複合函數(1):進階的函數應用

在先前的章節中,我們透過不同的工具及概念來讓大家理解 FP 在做些什麼事,舉例來說,在 Immutable 的章節我們大量使用 map 與 filter 的方法...

2022-09-25 ‧ 由 Vivian Yeh 分享
DAY 24

Day 24:高階函數與複合函數(2):科里化陣列方法

陣列方法可以說是 JavaScript 中最常使用的計算工具,不論是資料的處理,或是畫面的呈現,都少不了陣列方法。 在了解高階函式與複合函式的概念後,我們來試著...

2022-09-26 ‧ 由 Vivian Yeh 分享
DAY 25

Day 25:高階函數與複合函數(3):reduce 實用方法

在 FP 中,會發現我們其實沒有那麼常使用 for、forEach ,更多時候是使用 filter 與 map 陣列方法,因為在 FP 這個設計模式中,為了讓程...

2022-09-27 ‧ 由 Vivian Yeh 分享
DAY 26

Day 26 :第三方函式庫(1):初識Lodash.js

在先前的章節中,我們了解到要如撰寫純函式、科里化,甚至是透過高階函式與複合函式的手段,讓我們的函式重組性、復用性更高。 但如果到目前為止,這些概念對於你來說,都...

2022-09-28 ‧ 由 Vivian Yeh 分享
DAY 27

Day 27 :第三方函式庫(2):從 Lodash.js 深入了解 JavaScript

Lodash 這個函式庫中,提供了高達上百種的方法,有些方法可以說是原生 JavaScript 的加強版,或是將原有的原型方法包裝成純函式。 除了在實務開發時,...

2022-09-29 ‧ 由 Vivian Yeh 分享
DAY 28

Day 28 :第三方函式庫 (3):從 Ramda.js 深入了解 JavaScript

與 Lodash.js 類似, Ramda.js 是一個專門以 FP 模式設計出來的函式庫,與 Lodash 不同的是,Ramda 所提供的函式預設就已經柯里化...

2022-09-30 ‧ 由 Vivian Yeh 分享
DAY 29

Day 29 :總結 & 那些未完待續的 FP

在文章系列的尾聲,我們大致複習一下究竟什麼是 FP 呢?先前我們曾經提到過,透過 FP 設計模式產出的程式碼會有以下特色: 透過純函數(Pure Functi...

2022-10-01 ‧ 由 Vivian Yeh 分享
DAY 30

Day 30:後記,謝謝走在前面巨人們

這是我第一次參加鐵人賽的活動,在完賽的同時,自己也以前端工程師的身份在網頁開發的領域工作一年了,雖然未來還有很長的路要走,但這次的經驗對自己來說意義非凡。 即便...

2022-10-02 ‧ 由 Vivian Yeh 分享