1. ES6 Module
1.1 export
export
导出模块,导出的是对象,因此当值改变后,导出内容会跟着变,一个模块可以导出多个内容
export let val = 0
setTimeout(() => {
val = 1
}, 100)
export default
导出指定的默认输出,一个模块只允许有一个。本质是将后面跟着的值赋予default
变量再导出,因此后面只能跟值或者具有值的内容,不能跟声明语句
1.2 import
import
引入并执行模块,会在编译时执行,具有变量提升效果
由于编译时执行,不能使用表达式或变量
import {
'f' + 'oo' } from './test' // 报错
多次引入模块只会执行一次
import {
foo } from './test'
import {
bar} from './test'
// 等同于
import {
foo, bar } from './test'
整体加载后不允许运行时修改
import * as test from './test'
test.foo = (