JavaScript import vs require

Valentine Kagwiria 2023年10月12日
  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() 好,并节省了一些内存。