為何會需要 JavaScript 模組化
在早期的 JavaScript 開發時,引用其他 Script 後 var 變數基本上都是會掛在全域底下,若他人變數名稱與你的一樣就會產生後蓋前的問題,並且當你寫了一個通用函數時無法輕易的在其他的 Script 中引用,會造成重複代碼一直貼上的問題,因此陸續有了不同的解法產生
-
IIFE(立即函式):IIFE 是一種同時宣告函式並且執行的方式,透過這種方式可以創造私有作用域,並且無須額外宣告一個變數名稱出來,減少覆蓋的可能性
-
CommonJS(cjs):cjs 最早是活躍在 Node.js 的環境,透過 require 和 module.export 來達成導入和導出模組,雖然原生 JS 無法直接使用,但可以透過像是 webpack 或是 gulp 之類的打包工具來使用導入導出的功能
-
ECMAScript6(ES6):透過 ES6 的規範我們可以使用 import 和 export 來簡單的讓需要的模組導入和導出,並且在早期有瀏覽器支援度問題時也可以透過 babel 來將 ES6 的代碼改成支援度更高的方式