如何在浏览器中使用ES6模块
格式:<script type="module" src="....."></script>
特点:模块作用域、自动严格模式
导出变量的五种方式
第一种方式(逐个导出)
//module.js
export var a=1;
export var b=2;
//main.js
import {a,b} from './module.js';
console.log(a,b)
第二种方式(先声明,再统一导出)
//module.js
var a=1;
var b=2;
export {a,b as myB};//重命名
//main.js
import {a,myB as B} from './module.js';//重命名
console.log(a,B)
第三种方式(默认导出,只能使用一次)
//module.js
export default function(){
return 'export default默认导出函数,引用名字随便起吧';
}
//main.js
import tr from './module.js';
console.log(tr())
第四种方式(全模块同步导入)
//module.js
export var a=1;
export var b=2;
export default function(){
return 'export default默认导出函数,引用名字随便起吧';
}
//main.js
import * as all from './module.js';
console.log(all) //tr(),a,b
第五种方式(全模块异步导入,使用promise)
//module.js
export var a=1;
export var b=2;
export default function(){
return 'export default默认导出函数,引用名字随便起吧';
}
//main.js
import ('./module.js').then(function(all){
console.log(all)
});
注意:
1、export default 向外暴露的成员,可以使用任意变量来接收
2、在一个模块中,export default 只允许向外暴露一次
3、在一个模块中,可以同时使用export default 和export 向外暴露成员
4、使用export向外暴露的成员,只能使用{ }的形式来接收,这种形式,叫做【按需导出】
5、export可以向外暴露多个成员,同时,如果某些成员,在import导入时,不需要,可以不在{ }中定义
6、使用export导出的成员,必须严格按照导出时候的名称,来使用{ }按需接收
7、使用export导出的成员,如果想换个变量名称接收,可以使用as来起别名