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