import與require區別

命令 規範 調用 本質 特色
require CommonJS規範 運行時調用 賦值過程 非語言層面的標準。 社區方案,提供了服務器/瀏覽器的模塊加載方案。只能在運行時肯定模塊的依賴關係及輸入/輸出的變量,沒法進行靜態優化。
import es6+的語法標準 編譯時調用 解構過程 語言規格層面支持模塊功能。支持編譯時靜態分析,便於JS引入宏和類型檢驗。動態綁定

好比分析這一段 :es6

import { readFile } from 'fs';

js 代碼被 JavaScript 引擎編譯時, 並將上面 fs 模塊的屬性 readFile 指向對應模塊的 export const readFile() 方法上,注意這裏只是作了指針指向,而並非執行 fs 模塊。當執行 readFile() 時,就會去找指針指向的代碼並執行。瀏覽器

區分於CommonJS模塊:服務器

let { stat, exists, readFile } = require('fs');

其實上面代碼是先執行 fs 模塊,獲得一份代碼拷貝,再獲取對應的屬性或方法的。優化

相關文章
相關標籤/搜索