ECMAScript 之 ES Module
ES Module 是 ECMAScript 2015 最重要功能,讓 ECMAScript 總算有標準 Module,且語法只有 import 與 export,非常精簡。
ES Module 是 ECMAScript 2015 最重要功能,讓 ECMAScript 總算有標準 Module,且語法只有 import 與 export,非常精簡。
ECMAScript 之前很難寫大程式,主要是因為沒有 Module 概念,常常一個檔案寫兩三千行程式,且大量使用 Global Variable 造成 Side Effect 很難維護。早期會使用 Module Pattern 解決,稍後更有 CommonJS 與 AMD 試圖制定 Module 標準,一直到 ES Module 後,ECMAScript 模組化總算塵埃落定,是重要里程碑。
Map 為 ECMAScript 2015 新支援的資料結構,類似 Object 但功能更強,尤其 Key 可為任何型態包含 Object;若 Key 為 Object 時,由於 ECMAScript 語言特性,將無法簡單使用 get() 取得資料。
if else 與 switch case 是最基本的邏輯判斷方式,但卻也是 複雜度 的元兇,實務上善用 ECMAScript 語言特性與 Higher Order Function 降低複雜度,讓程式碼可讀性更高,也更容易維護。
除了使用 Toolbox 移除 WebStorm 外,其實一些設定檔仍然留在系統,本文列出所有設定目錄,可自行刪除徹底移除 WebStorm。
Vue 與 GraphQL 雖然都使用 ECMAScript,但實務上常分成不同 Project,也各自有 Git Repository,但能在同一個 WebStorm 同時開發 Vue 與 GraphQL 兩個 Project 嗎 ?
ECMAScript 其實並不如 C、C# 與 Java 強制在每行結尾都要加上 ;,支援所謂 ASI (Automatic Semicolon Insertion) 會在每行結尾自動加上 ;;WebStorm 與 ESLint 只要稍加設定就可完美支援 ASI。
FP 三部曲 (Declarative、Pure Function 與 Immutable) 中的第二部曲就是 Pure Function,但也由於 ECMAScript 對於 Argument 有 Pass by Value 與 Pass by Reference 兩種,且型別並沒有完整支援 Immutable,因此實現 Pure Function 時有些 Tricky。
ECMAScript 可動態建立 Property,而 Function 本身亦是 Object,若想在 Function 內存取自己的 Property,直覺會使用 this,但事實上並非如此。
ECMAScript 5 無論是 Function Declaration 或 Anonymous Function,都可以使用 this 搭配 call()、apply() 與 bind() 動態改變 this,ECMAScript 2015 支援了 Arrow Function 後,這對原本的 this 、call() 、apply() 與 bind() 有任何影響嗎 ?