JavaScript import vs require

Valentine Kagwiria 2023年10月12日 JavaScript
  1. JavaScript 中的 require()
  2. JavaScript 中的 import()
  3. JavaScript 中 requireimport 之間的主要區別
JavaScript import vs require

本文介紹了 JavaScript 語句 require()import() 之間的主要區別。它還提供了上下文,並詳細說明了每種上下文可與 ES6 和 CommonJS 一起使用的地方。

JavaScript 中的 require()

這是一個內建的 node.js 語句,最常用於包含來自其他單獨檔案的模組。它通過讀取 JS 檔案,執行該檔案並返回要匯出的物件來工作。它以合併核心節點模組,基於社群的甚至本地模組的能力而非常受歡迎。

我們可以使用 require() 在 JavaScript 中包含一個內建模組。

const express = require('express');

包含本地模組也很容易。

require('local_module');

如上所示,node.js 將嘗試在指定的路徑中找到 local_module.js。輸出將根據找到的節點進行延遲:如果檔案存在於指定的路徑中,則輸出將顯示模組的內容。如果不是這樣,你可能會收到以下錯誤。

Error: Cannot find module 'local_module'
at Function.Module._resolveFilename(module.js: 470: 15)
at Function.Module._load(module.js: 418: 25)
at Module.require(module.js: 498: 17)
at require(internal / module.js: 20: 19)
at repl: 1: 1
at ContextifyScript.Script.runInThisContext(vm.js: 23: 33)
at REPLServer.defaultEval(repl.js: 336: 29)
at bound(domain.js: 280: 14)
at REPLServer.runBound[as eval](domain.js: 293: 12)
at REPLServer.onLine(repl.js: 533: 10)

JavaScript 中的 import()

import() 是一個 ES6 模組。與 export() 一起,它們通常被稱為 ES6 匯入和匯出。從本質上講,這意味著該語句不能與 ES 模組之外的其他檔案型別一起使用。

import() 語句使使用者可以匯入他的模組並在程式中使用它們。語法為:

import './this-module.js';

使用者指定要匯入的模組的檔案路徑。

JavaScript 中 requireimport 之間的主要區別

require() 是使用 CommonJS 的 node.js 語句,而 import() 僅與 ES6 一起使用。

require() 保留在檔案中的位置(非詞法),而 import() 始終移至頂部。

可以在程式的任何位置呼叫 require(),但是只能在檔案的開頭執行 import()

大多數人直接使用 require() 語句執行程式碼,但是更喜歡在使用 import() 時使用實驗性模組功能標誌。

最後,所有使用 require() 語句的檔案都儲存為 .js 檔案,而帶有 import() 的檔案只能另存為 .mjs 檔案。

它們不能同時在一個程式中使用。

一般來說,import() 更受歡迎,因為它允許使用者僅選擇和載入他們需要的模組部分。該語句的效能也比 require() 好,並節省了一些記憶體。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe