JavaScript模块是ES6起原生支持的代码组织方式,通过import/export实现作用域隔离与复用;需注意默认导出唯一、命名导出需大括号、路径规则及静态解析限制。

JavaScript 模块是将代码拆分为独立、可复用单元的方式,每个模块拥有自己的作用域,不会污染全局环境。从 ES6(ES2015)开始,原生支持 import 和 export 语法,这是现代 JavaScript 开发的标准模块机制。
模块的基本规则
模块文件默认处于严格模式,顶层的 this 是 undefined;变量、函数、类等不会自动挂到全局对象上。只有显式导出的内容才能被其他模块使用。
- 一个模块可以有多个命名导出(
export const/name/function/class) - 但只能有一个默认导出(
export default) - 模块路径必须带扩展名(如
.js)或以/、./、../开头,否则会被当作内置模块或包名处理
如何导出模块内容
用 export 关键字暴露变量、函数、类等,供其他模块导入。
-
命名导出:可导出多个,导入时需用大括号并保持名称一致
export const PI = 3.14;
export function add(a, b) { return a + b; } -
批量命名导出:
export { PI, add }; -
重命名导出:
export { add as sum }; -
默认导出:每个模块最多一个,导入时可自定义名字,更灵活
export default function greet() { return 'Hello'; }
如何导入模块内容
用 import 从其他模块加载导出项,注意浏览器中需在 中使用。
淘宝客打折系统,集成了jssdk模块,增加了seo优化功能,更有利于搜索引擎收录 1程序上传到服务器空间 2开启服务器 3打开安装地址:http://您的域名/install.php 4如果不能安装请确保数据库里的表全部删除 5进入后台地址:http://您的域名/main.php 默认用户名和密码都是admin 6测试数据时可以导入 test文件夹里的test.sql文件 到数据库,或者
立即学习“Java免费学习笔记(深入)”;
-
导入命名导出:
import { PI, add } from './math.js'; -
导入并重命名:
import { add as sum } from './math.js'; -
导入全部命名导出:
import * as math from './math.js';→ 用math.PI访问 -
导入默认导出:
import greet from './greet.js';(无需大括号) -
同时导入默认和命名导出:
import greet, { PI } from './greet.js';
实际使用注意事项
模块是静态解析的——import 必须写在顶层,不能放在条件语句或函数内;动态导入可用 import() 函数(返回 Promise),适合按需加载。
- Node.js 中启用 ES 模块需加
"type": "module"字段或用.mjs后缀 - 浏览器中路径是相对当前 HTML 文件还是 JS 文件?答:相对于引入该模块的 JS 文件
- 不加
type="module"的 script 标签无法使用 import/export
基本上就这些。模块让代码更清晰、可维护,也方便配合打包工具或原生支持做优化。不复杂但容易忽略细节,比如路径写法或默认/命名导出混用时的语法差异。










