Module 01 · Introduction to Server-Side JavaScript服务器端 JavaScript 入门
Import and Require模块与 import 和 require 的使用指南
欢迎来到《import 和 require》的课程!完成本视频后,您将能够:
- 解释什么是模块
- 定义模块规范
- 说明
import和require语句的用途 - 区分
import和require语句
模块与模块规范
什么是模块?
- 模块是包含相关 JavaScript 代码的文件,具有明确的功能。
- 模块可以是一个单独的文件,也可以是多个文件和文件夹的集合。
- 模块优势:
- 代码复用性:提高效率,减少冗余。
- 代码可管理性:将复杂代码拆分成更易于管理的部分。
模块调用
- 当一个外部应用需要使用模块中的代码时,需要通过
import()或require()语句来调用模块。 - 调用语句的选择取决于所使用的模块规范。

模块规范
- 定义:模块规范是为 Node.js 应用中的 JavaScript 代码创建包时所使用的约定和标准。

- 常见模块规范:
- CommonJS:默认被 Node.js 支持。
- ES 模块(ESM):通过将文件扩展名从
.js更改为.mjs启用。


import** 和require的比较**
语法与用法

| 特性 | require |
import |
|---|---|---|
| 适用规范 | CommonJS | ES 模块 |
| 调用位置 | 可在文件中的任何位置调用 | 必须在文件的开头调用 |
| 绑定方式 | 动态绑定 | 静态绑定 |
| 错误识别时机 | 运行时(Run-time)识别 | 编译时(Compile-time)识别 |
| 加载方式 | 同步(Synchronous) | 异步(Asynchronous) |
同步与异步
- 同步加载(
require):- 模块按顺序线性加载。
- 适用场景:小型应用程序或少量模块的加载。
- 异步加载(
import):- 模块可同时加载,提高速度。
- 适用场景:大型应用程序中需要加载上百个模块时表现更优。

模块导入与导出示例

CommonJS 的导入与导出
导出模块
文件名:message.js
module.exports = "Hello programmers";
导入模块
文件名:main.js
const msg = require('./message.js');
console.log(msg); // 输出: Hello programmers
ES 模块的导入与导出
导出模块
文件名:module.mjs
const a = 1;
export { a as myValue }; // 使用 export 导出并重命名
导入模块
文件名:main.mjs
import { myValue } from './module.mjs';
console.log(myValue); // 输出: 1
总结
- 模块:包含相关 JavaScript 函数的文件,旨在实现特定功能。
- 模块规范:CommonJS 和 ES 模块是 Node.js 中的两种主要模块规范。
require** 与import的区别**:
require:动态绑定,同步加载,适用于 CommonJS。import:静态绑定,异步加载,适用于 ES 模块。
- 使用模块可以提升代码的可维护性和开发效率,特别是在大型应用程序中,选择正确的模块规范至关重要。
🎉 恭喜!您已了解 import 和 require 的核心概念与使用方法! 🚀