1. 程式人生 > 實用技巧 >CommonJS 規範 與 ES6 規範

CommonJS 規範 與 ES6 規範

CommonJS規範即AMD:require, exports,module.exports

ES6: export / import

遵循規範

  • require是 AMD規範引入方式
  • import是es6的一個語法標準,如果要相容瀏覽器的話必須轉化成es5的語法

呼叫時間

  • require是執行時呼叫,所以require理論上可以運用在程式碼的任何地方(雖然這麼說但是還是一般放開頭)
  • import是編譯時呼叫,所以必須放在檔案開頭

require / exports :
遵循 CommonJS/AMD,只能在執行時確定模組的依賴關係及輸入/輸出的變數,無法進行靜態優化。
用法只有以下三種簡單的寫法:

const fs = require('fs')
exports.fs = fs
module.exports = fs

import / export:
遵循 ES6 規範,支援編譯時靜態分析,便於JS引入巨集和型別檢驗。動態繫結。
寫法就比較多種多樣。

本質

      • require是賦值過程,其實require的結果就是物件、數字、字串、函式等,再把require的結果賦值給某個變數。
      • require的話他是匯出的物件,不管你裡面定義的是物件還是number或者字串都是 匯出物件
      • import是解構過程,但是目前所有的引擎都還沒有實現import,我們在node中使用babel支援ES6。
      • 然而import的話,你定義的是什麼就匯出什麼,你定義number匯出就是number,定義字串就是字串