Skip to content

模块

一句话解释

模块是一个独立的代码文件,通过 `export` 暴露自己的功能、通过 `import` 引入别人的功能,实现代码组织和复用。

用大白话说

模块(module)就是把代码拆成多个独立文件,每个文件是一个模块,可以互相导入导出。好处是:代码组织清晰、避免全局污染、方便复用。

// math.js —— 导出
export function add(a, b) { return a + b; }
export const PI = 3.14;

// main.js —— 导入
import { add, PI } from "./math.js";
console.log(add(2, 3));  // 5

JS 的模块系统主要有两种:

  • ES Modules(ESM):import/export,浏览器原生支持,是现代标准
  • CommonJS(CJS):require/module.exports,Node.js 传统写法

模块里的变量默认是私有的,只有 export 出去的才能被外部访问。这天然实现了作用域隔离,避免不同文件里的同名变量冲突。大型项目都靠模块化来组织代码。

示例

javascript
// math.js
export function add(a, b) { return a + b; }
export const PI = 3.14;

// main.js
import { add, PI } from "./math.js";
console.log(add(2, 3)); // 5
console.log(PI);        // 3.14

export 把函数和常量暴露出去,用 import { 名字 } from "文件路径" 引入。模块内默认私有。

工作原理

  1. 在模块文件里用 export 暴露要共享的功能
  2. 在另一个文件用 import { 名字 } from "路径" 引入
  3. 模块内未 export 的变量对外不可见(私有)
  4. 同一模块被多次 import 只会执行一次,结果被缓存

常见混淆

  • 容易混淆的对象:

    关键区别: 模块是单个文件,包(package)是多个模块组成的目录,通常带 package.json 描述。一个包可以包含多个模块。

相关术语

相关资源

相关课程

学习基础知识

通过结构化课程深入理解这个主题。

查看课程

解读错误信息

用大白话解释常见错误——什么意思、为什么发生、如何修复。

查看错误

← 返回术语表