返回

import 和 require:JavaScript 模块系统

前端

import 和 require 的基本使用

在 JavaScript 中,模块化是一种将代码组织成独立单元的实践,以便它们可以被其他代码重用。在 ES6 标准之前,CommonJS 规范是用于在 Node.js 中管理模块的事实标准。CommonJS 使用 require 语句来导入模块,而 ES6 引入了 import 语句作为一种更现代、更简洁的方式来实现相同的目的。

要使用 import 语句,您需要在要导入的模块之前添加 import 。例如,以下代码从名为 "math_functions.js" 的模块导入一个名为 "add" 的函数:

import { add } from "./math_functions.js";

在 CommonJS 中,您使用 require 语句来导入模块。require 语句返回模块的导出对象。例如,以下代码从名为 "math_functions.js" 的模块导入一个名为 "add" 的函数:

const mathFunctions = require("./math_functions.js");
const add = mathFunctions.add;

import 和 require 的区别

import 和 require 语句之间存在几个主要区别:

  • 语法: import 语句使用 import 关键字,而 require 语句使用 require 关键字。
  • 导入方式: import 语句将模块的导出直接导入到当前作用域中,而 require 语句返回模块的导出对象,您需要使用点运算符来访问对象的属性。
  • 模块加载: import 语句在编译时加载模块,而 require 语句在运行时加载模块。这意味着使用 import 语句导入的模块可以在编译时进行类型检查,而使用 require 语句导入的模块只能在运行时进行类型检查。
  • 支持环境: import 语句在所有支持 ES6 的环境中都可用,而 require 语句仅在支持 CommonJS 的环境中可用,例如 Node.js 和 Electron。

何时使用 import 和 require

在大多数情况下,您应该使用 import 语句来导入模块。import 语句更现代、更简洁,并且可以在编译时加载模块,从而提高性能。但是,如果您需要在不支持 ES6 的环境中使用模块,或者您需要在运行时加载模块,那么您应该使用 require 语句。

结论

import 和 require 语句都是 JavaScript 中用于导入模块的强大工具。通过理解这些概念,您可以更好地组织和管理 JavaScript 代码,提高开发效率。