import用于es模块中导入内容,需type="module"或.mjs等标识;支持命名/默认/混合导入及无值导入;路径须相对/绝对/url;属静态声明,动态加载用import()函数。

在 JavaScript 中,import 关键字用于从其他模块(文件)中导入变量、函数、类或默认导出的内容,但必须在模块环境中使用——即当前文件需被识别为 ES 模块(ESM)。
确保文件是 ES 模块
浏览器或 Node.js 需明确知道该文件是模块,否则 import 会报错:
-
浏览器中:HTML 的
<script></script>标签要加type="module",例如:<script type="module" src="main.js"></script> -
Node.js 中:文件后缀为
.mjs,或在package.json中设置"type": "module"
导入不同类型的导出内容
根据目标模块的导出方式,import 语法略有不同:
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
-
导入命名导出(named export):
import { foo, bar } from './utils.js';
也可重命名:import { foo as myFoo } from './utils.js'; -
导入默认导出(default export):
import something from './math.js';
注意:默认导入名可任意取,不依赖原文件中的名称 -
同时导入默认和命名导出:
import something, { foo, bar } from './module.js'; -
只执行模块,不导入任何值(用于副作用):
import './polyfill.js';
路径必须是相对或绝对 URL
import 后的路径不能是纯字符串变量,也不能省略扩展名(如 .js),且需符合以下规则:
- 以
./或../开头:表示相对路径,例如import { fn } from './helpers.js'; - 以
/开头:表示从网站根目录开始的绝对路径(浏览器环境) - 以协议开头(如
https://):支持直接导入 CDN 上的 ESM 模块(需服务端支持 CORS) - 不支持 Node.js 风格的包名简写(如
import _ from 'lodash'),除非用构建工具(如 Vite、Webpack)或启用实验性功能
import 是静态声明,不能写在条件或函数里
import 必须出现在模块顶层,不能包裹在 if、for 或函数中。如需动态加载,应使用 import() 函数(返回 Promise):
import('./utils.js').then(module => console.log(module.foo));- 配合
await使用(在 async 函数内):const module = await import('./config.js');










