默认导出一个模块仅允许一个,可自定义导入名;具名导出允许多个、需按名或别名导入,两者可共存但语法不可混用。

ESModule 中默认导出(default export)和具名导出(named export)是两种不同导出方式,语法和导入方式也对应区分。
默认导出:一个模块只能有一个
默认导出用于导出模块的“主要值”,可以是函数、类、对象、基本类型等。它不依赖名字,导入时可自定义名称。
- 定义方式:export default 后接表达式或声明
- 常见写法:
export default function foo() {}export default class MyClass {}const obj = { a: 1 }; export default obj; - 注意:不能直接
export default const x = 1;(语法错误),需先声明再导出,或用表达式形式
具名导出:可多个,必须按名导入
具名导出暴露多个标识符,每个都有固定名称,导入时需用同名或别名。
Java开发手册规约集合,基于阿里巴巴Java开发手册(嵩山版)。 涵盖7大维度:编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约。
- 定义方式:export 关键字放在声明前,或集中写在末尾
- 支持的声明类型:函数、类、
const/let/var声明(必须有名字) - 示例:
export function add(a, b) { return a + b; }export const PI = 3.14159;
export { add, PI }; - 可同时导出并重命名:
export { add as sum, PI as pi };
导入时的区别要记清
导入方式必须匹配导出类型,否则报错。
- 导入默认导出:
import something from './module.js';(无大括号) - 导入具名导出:
import { add, PI } from './module.js';(带大括号) - 混合导入:
import main, { add, PI } from './module.js'; - 全部导入为命名空间对象:
import * as utils from './module.js';,然后用utils.add、utils.default访问
不能混用 default 和具名导出的常见误区
一个模块可以同时有默认导出和具名导出,但要注意:
-
export default只能出现一次;export可多次或批量 - 不能写
export default export { foo };(语法非法) - 不要试图用
export default function() {}和export default class {}并存 - 具名导出的变量必须已声明,不能
export { undefinedVar };(运行时报错)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










