学习十二、ES Modules的注意事项

# 基本特性

- 自动采用严格模式,忽略'use strict'

- 每个 ESM 模块都是单独的私有作用域

- ESM 是通过 CORS 去请求外部 JS 模块的

- ESM 的 script 标签会延迟执行脚本

# 导入和导出

- 导入导出使用的 {} 并不是对象的解构,只是一种语法

- 模块的导出过程中,外部导出的成员会受内部修改的影响

- 导出的成员是一个只读的成员,无法被修改

# 导入的用法

- 导入时必须使用完整的扩展名称,不可以省略.js 的扩展名,与 CommonJS 有区别

- 导入时也必须输入完整的文件地址,不可以省略 index 这种默认访问名称

- './'相对路径也不可以省略(或'/'绝对路径)必须以此开头,不然会被认为是引入模块

- 可以用 url 来引用模块文件

- import './module.js' 加载模块但并不提取他

- import \* as obj from './module.js' 导出所有成员,并放入 obj 对象

- 如果需要动态加载模块可以使用 import('./module.js').then(function(data){console.log(data)})

- import title ,{name,age} from './module.js' 花括号之前为默认成员 default。

## ES Modules in Node.js 与 CommonJS

- ES Modules 中可以导入 CommonJS模块

- CommonJS 中不能导入 ES Modules模块

- CommonJS 始终只会导出一个默认成员

猜你喜欢

转载自blog.csdn.net/qq_40289624/article/details/108986367