在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。
ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。
module 分为 export 和 import ,export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。
export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。
export 1 // 报错
var a = 1
export a // 报错
下面三种写法都是正确的,规定了对外的接口m。其他脚本可以通过这个接口,取到值1。它们的实质是,在接口名与模块内部变量之间,建立了一一对应的关系。
// 写法一
export var m = 1;
// 写法二
var m = 1;
export {
m};
// 写法三
var n = 1;
export {
n as m};
function 和 class 同样
// 报错
function f() {}
export f;
// 正确
export function f() {};
// 正确
function f() {}
export {
f};
export命令可以出现在