iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
Modern Web

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

Day 8 :JavaScript 型別與他們的地雷(5):結語

  • 分享至 

  • xImage
  •  

截至這個章節,我們大致上把要應用 FP 所需要、也最基礎的 JavaScript 概念了解過一遍了,當然在 後的章節中,我們還會把先前所提到的概念往更進階的延伸應用。

在自己初學 JavaScript 及準備第一份工作面試的時候,我花了大把時間去準備那些「JS 核心必考面試題」,但老實說,很多仿間的課程聊到 JavaScript 底層實作時,真的很像參考書,講了一大堆,但都沒提到所謂應用的層面。

當時看了一堆 JavaScript 底層概念的我,有點覺得「概念在手,卻毫無用武之地」的感覺,但自從深入了解 FP 之後,我才發現語言的特性會深深影響在實際開發時,我們可以如何「運用語言的特性管理我們的程式碼」。

為了要更順利的理解 FP 的設計理念及在 JavaScript 實作方式,了解 JavaScript 本身的特性絕對會是第一步,那麽就讓我們花一點時間複習先前所提到的重點概念吧!

重點整理:

  • JavaScript 是一個弱型別語言,在宣告變數時我們不需要特別指定「型別」就可以將資料塞進變數中,型別會影響我們操作資料的方式。
  • 在 JavaScript 中,只要是需要動態操作透過並且夠過 let 關鍵字宣告的變數,就是會有輕易能被覆寫的可能性。
  • JavaScript 並不像低階語言一般,可以靠手動的方式去操作記憶體,而是透過底層的演算法去自動處理記憶體的回收機制,所以這導致初學 JavaScript 的人,可能會直接忽視記憶體管理這件事。
  • 基礎型別以「傳值」的方式複製、拷貝值,物件型別則以「傳共享」的機制共享記憶體空間。
  • JavaScript 中的函式可以擁有自己的屬性,就如同一般的物件一樣,唯一的差異在於函式是可以被呼叫的。
  • 函式可以透過 return 關鍵字回傳值,如果我們把某個函式指給變數的話,函式也可以作為「值」(value)。
  • 函式同樣也能作為物件屬性中的「值」,當物件的某個屬性以函式作為值時,我們會將這個函式稱為「物件方法」。
  • 表達式會產出值,陳述式執行某些行為;表達式可以獨立被賦予到變數中,或是參數做使用,但 陳述式不行。

雖然目前看起來,這些概念還不能與 FP 連貫起來,甚至不知道相關性在哪,但其實這些 JavaScript 原生的特性,或是不夠瞭解而使用了錯誤的手法處理資料,可能會給我們在實務開發上,帶來許多預期以外的錯誤。

在下一章節,我們要邁向 FP 的第一步啦:什麼是 Immutable Data 呢?為什麼我們不該使用 Mutable Data ?

那我們下一章見!


上一篇
Day 7 :JavaScript 型別與他們的地雷(4):表達式與陳述式
下一篇
Day 9 :何謂 Immutable Data?(1):關於 Immutable 與 Mutable(修正版)
系列文
致 JavaScript 開發者的 Functional Programming 新手指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言