主流的有commonJs(主要应用于服务器端node.js)和es6(主要应用于浏览器端,也支持服务器端node.js)
commonJs
导出方式
- module.exports = value
- exports.xxx = value
PS:commonJs中每个模块默认有一个空对象,this,module.exports,exports都是指向同一个空对象,无论怎么导出,最后导出的都是module.exports对象
es6
导出方式
- 默认导出:
export default xxx - 统一导出: 代码的最后
export {你要导出的东西} - 分别导出:
export const a = 1
PS:默认导出可以和其他两个同时使用
导入方式
- 全部导入:
import * as name form 'xxx.js' - 默认导入:
import name(随便取名,前提是有默认导出) from 'xxx.js' - 动态导入:
import('xxx.js')
数据引用问题:
- 闭包:外面解构赋值出来的变量只是副本而已
- CommonJs: 导入的数据也是副本
- es6: 导入的数据是引用,占用同一块内存空间