export default 用于为模块指定唯一主出口,支持导出函数、类、对象等,导入时无需花括号且名称可自定义;可与命名导出共存,但一个文件仅允许一个默认导出。

ES6 的 export default 用于为模块指定一个“主出口”,每个模块只能有一个默认导出,导入时无需花括号、名称可自定义,用法简洁灵活。
默认导出的写法
可以导出函数、类、对象、基本值或表达式,不强制命名:
- 导出匿名函数:
export default function(a, b) { return a + b; } - 导出具名函数(仍算默认导出):
export default function add(a, b) { return a + b; } - 导出类:
export default class Calculator { ... } - 导出对象字面量:
export default { version: '1.0', init() { ... } }; - 导出变量值:
const API_URL = 'https://api.example.com'; export default API_URL;
默认导入的写法
导入时直接起任意合法名称,不加大括号,路径后必须带 .js(浏览器中):
用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。
-
import utils from './utils.js';—— 名称utils是你自定的 -
import ApiClient from './api.js';—— 即使原导出是对象,也可这样用 - 注意:不能写成
import { default } from './utils.js',这是错误的
与命名导出共存时的混合导入
一个模块可同时有 export default 和多个 export(命名导出),导入时顺序固定:
- 导出示例(
math.js):export const PI = 3.14159;<br>export function sqrt(x) { return Math.sqrt(x); }<br>export default function add(a, b) { return a + b; } - 导入写法:
import add, { PI, sqrt } from './math.js';
—— 默认导出放前面,命名导出放花括号里
常见注意事项
避免踩坑的关键点:
- 一个文件中只允许一个
export default,重复会报语法错误 - 在 HTML 中使用需声明
<script type="module">,且路径必须含.js后缀 - 默认导出本质是“绑定一个值”,导入后修改该值(如对象属性)会影响原模块(动态绑定)
- 不能用
export default let x = 1这种写法;需先声明再导出,或直接导出表达式

















