参考文档:https://es6.ruanyifeng.com/#docs/module#export-%E5%91%BD%E4%BB%A4
文章目录
1. 概述
- 模块体系:CommonJS、AMD、ES6模块(Module)
- Module:静态化,编译时确定模块依赖关系、输入、输出
- 其他:运行时确认依赖关系
- CommonJS:对象,运行时加载
2. 严格模式
- Module自动采用严格模式
- 顶层this指向undefined
3. export命令
- 对外接口
- 实质: 接口名与模块内部变量间,建立了一对一的关系
- 接口与值:动态绑定关系
//正确写法
export var n = 1
var m = 1
export {
m}
export {
m as n}
//错误写法
export 1
var m = 1
var f = ()=>{
}
export m //非接口
export f //非接口
export function(){
} //非接口
4. import命令
- 输入接口
- 接受大括号,里面含有其他模块导入的变量名
- as关键字
- from后可为相对或绝对路径,.js后缀可省略
- 输入变量只读
import {
a} from './file'
import {
a as b} from './file'
b = {
} //报错
- 静态执行
- import在编译时执行
- 提升效果
- 不能用于表达式、变量、if等语句
- import可只用于加载模块(不做输入)
- Singleton (单例模式,只执行一次)