export用于模块中公开变量、函数等供其他模块导入;支持命名导出(多个、需同名或重命名)、默认导出(每个模块至多一个、导入无需花括号)、混合导出及重新导出(透传其他模块导出)。

在 JavaScript 中,export 关键字用于将变量、函数、类或对象从模块中公开,供其他模块通过 import 引入使用。它只在模块(即 type="module" 的脚本或 .mjs 文件)中有效,普通脚本中直接使用会报错。
命名导出(Named Exports)
适用于导出多个值,每个导出项都有自己的名称,导入时需用对应名称或重命名。
- 可以在声明时直接导出:
export const PI = 3.14159;
export function add(a, b) { return a + b; }
export class Calculator { ... } - 也可以统一导出(推荐用于集中管理):
const name = "Alice";
const greet = () => "Hello";
export { name, greet }; - 导出时可重命名:
export { name as userName, greet as sayHello };
默认导出(Default Export)
每个模块最多一个默认导出,导入时不需花括号,名字可自定义,适合导出主功能或单例。
- 导出方式:
export default function() { return "I'm default"; }
export default class App { ... }
export default { version: "1.0", init() { ... } }; - 注意:不能对
function声明加export default后再写函数名(语法错误),应写成表达式形式:
✅ 正确:export default function() { ... } 或 const foo = () => {}; export default foo;
❌ 错误:export default function foo() { ... }(这是非法的)
混合导出(Named + Default)
一个模块可以同时有默认导出和命名导出,常见于工具库(如导出主类 + 辅助函数)。
立即学习“Java免费学习笔记(深入)”;
- 示例:
export const VERSION = "2.1.0";
export function helper() { ... }
export default class Engine { ... } - 对应导入:
import Engine, { VERSION, helper } from "./engine.js";
重新导出(Re-export)
不加载模块内容,只是把另一个模块的导出“透传”出去,常用于构建入口文件(如 index.js)。
- 导出全部命名项:
export * from "./math.js"; - 导出并重命名:
export { add as sum, multiply as times } from "./math.js"; - 导出默认项:
export { default as MathLib } from "./math.js";
或简写:
export { default } from "./math.js";


















