- 命名空间模式
- CommonJs
- AMD 规范(关于 CommonJs 的异步规范实现)
- ES6模块化
- 工程化工具 webpack、vite 等打包构建工具
-----------------------------CommonJs 和 ES6 Module 的区别
- CommonJs导出的是变量的一份拷贝,ES6 Module导出的是变量的绑定(export default 是特殊的)
- CommonJs是单个值导出,ES6 Module可以导出多个
- CommonJs是动态语法可以写在判断里,ES6 Module静态语法只能写在顶层
- CommonJs的 this 是当前模块,ES6 Module的 this 是 undefined