module es6 模块设计思想,尽量保持静态化)
es6 使用 export 对外暴露接口
使用 iimport 引入其他模块
import 声明的变量,必须放在 {} 内,变量名必须和暴露的接口名一致;
exprot var a="hello world" (不建议)
var a="hello world"; exprot {a} (建议)
引入接口
import {a} from "文件名"
暴露多个变量,必须加 {}
模块文件暴露什么,引入文件接收什么 (例如:export {a} 为一个对象,那么 import {a} from "文件名" 的 a 就是一个对象)
注意:
export 暴露必须是一个变量,或变量集合
不能直接暴露一个数据,例如:export 12 这种写法就是错的
如果不想让别人知道你暴露的什么接口,我们可以使用 as 关键字
案例:
var a = "hello world";
export {a as ben}; ben 和 a 都 代表了这个字符串
import {ben} from "文件名"
console.log(ben); // hello world
export default 介绍
案例:
a.js
var a="hello world"
export default a;
b.js
import haha from "a.js";
console.log(haha) //hello world;
总结:
export 和 import 时一对,二者后面都必须带 {} ,花括号里面的变量名,保持一致
export default 和 import 也是一对,二者后面不用带 {} ,名字不需要一致;
export default 一次只能对外输出一个
exprot default 本质是将值赋给变量 default ,所以,default 后面不能对变量在次声明;
export default var a x 这种写法错的
export default function fn v 这种写法可以
export default 的本质:
export {a as default} default 可以是任何变量,所以便能实现 export default