CommonJS(Node.js)
在运行时加载模块,输出一个值的拷贝。由于使用同步加载,会发生阻塞,所以不适用于浏览器的场景
导入
require
导出
module.exports或者exports,默认他们俩指向同一个对象,require导入永远以module.exports指向的对象为准
ESM/es6模块
在编译时加载模块,输出的是值的引用
导入
import
列表导入 import {变量名} from 'xxx.js'
重命名导入 import {变量名 as 新变量名} from 'xxx.js'
导入单个属性 import a from 'xxx.js'
导入默认导出内容 import 变量名 from 'xxx.js'
导入export和默认导出的内容 导入有export导出和默认导出的对象变量属性 import * as obj from 'xxx.js'
导出
export
列表导出 export {变量}
重命名导出 export {变量名 as 新变量名}
导出单个属性 export let a = 1
默认导出 一个模块只允许有一个默认导出 export default {变量}