javascript中命名空间导入语法为import * as 名称 from '模块路径',可批量导入模块所有导出并挂载为只读对象,具名导出作属性、默认导出作default属性。

在 JavaScript 中,使用 命名空间导入(namespace import) 语法可以一次性接收模块的所有导出成员,将其挂载到一个对象上。
语法:用 import * as 导入全部导出
这是标准的批量导入方式,适用于 ES 模块(ESM)环境:
- 写法为
import * as 名称 from '模块路径' - 导入后,该名称是一个只读的命名空间对象,其属性对应原模块的具名导出(named exports)
- 默认导出(
export default)也会作为该对象的一个属性,属性名是default
示例:导入并使用具名 + 默认导出
假设有一个模块 mathUtils.js:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
// mathUtils.js
export const PI = 3.14159;
export function add(a, b) { return a + b; }
export default function multiply(a, b) { return a * b; }
在另一个文件中批量导入:
import * as math from './mathUtils.js'; <p>console.log(math.PI); // 3.14159 console.log(math.add(2, 3)); // 5 console.log(math.default(2, 3)); // 6 —— 默认导出挂载在 .default 上 </p>
注意事项
- 模块路径必须是字符串字面量(不能是变量或表达式)
- 导入对象是 只读的,不能重新赋值属性(如
math.PI = 0会报错) - 不支持动态导入(
import()返回 Promise,无法直接用* as语法) - 如果目标模块只有默认导出、没有具名导出,
* as仍会生成一个含default属性的对象
替代方案:解构默认导出 + 按需导入具名成员
若只想用部分成员,更常见且推荐的做法是混合导入:
import multiply, { PI, add } from './mathUtils.js';
// multiply 是默认导出,{ PI, add } 是具名导出
这种方式更利于静态分析和 tree-shaking,适合生产环境。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










