import和require的區別

2021-09-24 06:25:12 字數 675 閱讀 7273

node程式設計中最重要的思想就是模組化,import和require都是被模組化所使用。

遵循規範

require 是 amd規範引入方式

import是es6的乙個語法標準,如果要相容瀏覽器的話必須轉化成es5的語法

呼叫時間

require是執行時呼叫,所以require理論上可以運用在**的任何地方

import是編譯時呼叫,所以必須放在檔案開頭

本質

require是賦值過程,其實require的結果就是物件、數字、字串、函式等,再把require的結果賦值給某個變數

import是解構過程,但是目前所有的引擎都還沒有實現import,我們在node中使用babel支援es6,也僅僅是將es6轉碼為es5再執行,import語法會被轉碼為require

通過require引入基礎資料型別時,屬於複製該變數。

通過require引入複雜資料型別時,資料淺拷貝該物件。

出現模組之間的迴圈引用時,會輸出已經執行的模組,而未執行的模組不輸出(比較複雜)

commonjs模組預設export的是乙個物件,即使匯出的是基礎資料型別

import和require的區別

node程式設計中最重要的思想就是模組化,import和require都是被模組化所使用。遵循規範 呼叫時間 本質 require exports 遵循 commonjs amd,只能在執行時確定模組的依賴關係及輸入 輸出的變數,無法進行靜態優化。用法只有以下三種簡單的寫法 const fs req...

import和require的區別

遵循規範 require 是 amd規範引入方式 import是es6的乙個語法標準,如果要相容瀏覽器的話必須轉化成es5的語法 呼叫時間 require是執行時呼叫,所以require理論上可以運用在 的任何地方 import是編譯時呼叫,所以必須放在檔案開頭 本質require是賦值過程,其實r...

import 和require的區別

文章 node程式設計中最重要的思想就是模組化,import和require都是被模組化所使用。遵循規範 呼叫時間 本質require exports 遵循 commonjs amd,只能在執行時確定模組的依賴關係及輸入 輸出的變數,無法進行靜態優化。用法只有以下三種簡單的寫法 const fs r...