javascript import支持默认导出、具名导出、混合导入及仅执行导入四种形式:默认导出可自定义名称;具名导出需大括号且名称一致或重命名;混合导入用逗号分隔;仅执行导入为空语句。

JavaScript中import命令支持多种语法形式,核心取决于你导入的是默认导出(default export)、具名导出(named export),还是需要同时处理两者,甚至动态加载模块。掌握这些形式能避免“Cannot destructure property”或“is not exported”等常见报错。
导入默认导出(default export)
当模块使用export default导出一个值(函数、类、对象、基本类型等),导入时可自定义任意合法名称,无需加花括号:
-
import myFunc from './math.js';—— 最常用,简洁直接 -
import anythingName from './math.js';—— 名称完全自由,不依赖原文件中的变量名 -
import { default as myFunc } from './math.js';—— 等价写法,显式说明导入默认导出(较少用,但有助于理解机制)
导入具名导出(named export)
当模块使用多个export(非default)导出变量、函数或类,导入必须用大括号,并且名称需与导出时一致(区分大小写):
-
import { add, multiply } from './math.js';—— 导入多个具名导出 -
import { add as sum } from './math.js';—— 使用as重命名,解决命名冲突或提升可读性 -
import * as mathUtils from './math.js';—— 将所有具名导出汇总为一个命名空间对象,通过mathUtils.add访问
同时导入默认导出和具名导出
一个模块可以既有export default,又有多个export。此时需在同一个import语句中组合使用:
-
import React, { useState, useEffect } from 'react';—— 默认导出(React)在前,具名导出在后,用逗号分隔 -
import myDefault, * as namedExports from './module.js';—— 默认导出 + 命名空间对象(注意:不能写成{* as ...})
仅执行模块(无绑定导入)
有时只需运行模块顶层代码(如注册全局行为、打补丁、初始化副作用),并不需要任何导出值:
-
import './polyfill.js';—— 空导入,只触发模块执行 -
import 'core-js/stable';—— 常见于兼容性处理,无须变量接收
不复杂但容易忽略:路径必须是字符串字面量(不能拼接变量),且ESM中import只能出现在顶层作用域;若需条件导入或运行时路径,应使用import()动态导入函数。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











