概述
是一种思想,是目前前端必备的
Commonjs
nodejs使用的模块加载策略,是同步加载的
AMD
requirejs实现了AMD的规范,AMD是异步的
模块化规范
在浏览器使用ES Modules(目前大多数浏览器均支持)
nodejs使用commonJS规范
ES Modules
- 给script标签设置type为module,即设置了模块
- 其中使用了严格模式,this不指向window,而是undefined
- 每个ES Module均有单独作用域
- ESM 是通过 CORS 的方式请求外部 JS 模块的,请求地址要支持cors
- ESM 的 script 标签会延迟执行脚本
导出和导入
因私有作用域,内部变量无法访问,可使用export导出访问,可通过import导入其他模块,export default为默认导出
export不是导出对象 export {name}是固定写法,如果想导出对象可用默认导出
import导入也不是解构写法,而是固定语法
导出的变量只是把引用导出,而不是复制一遍再导出