1.
CommonJS
规范:JS
模块的加载方案,同步加载,一般用在服务端 --Node.js
2.
AMD
,CMD
规范:JS
模块的加载方案,异步加载,一般用在客户端 --require.js
,sea.js
以上模块加载方式为运行时加载,只有在运行时才能得到对象
3.
ES6
模块化,模块加载方式,既可用在服务端也可用在客户端 -- 编译时加载4.一个文件就是一个模块
ES6模块化
1.export
命令:规定模块的对外接口 -- 文件内的方法对外暴露的名字
1.对外暴露单个接口 export var varName = val; export function foo(){}; 2.对外暴露多个接口 export {name1,name2 as name3} //as:给name2取别名 注意:export对外导出必须同时导出变量名和值!
2.import
命令:加载模块及对应接口
import {name1,name2 as name3} from "path/*.js"; 注意:1.导入的接口名必须与导出的接口名一一对应 2.文件加载的路径可以是绝对路径,也可以是相对路径--相对路径必须以/,./,../开头,如果都没有则需要配置文件 3.多个相同的import只会执行一次
3.全部加载:
import * as name from "path/*.js";
4.默认导出:
export default val/function/class; 注意:1.一个模块只能有一个默认导出 2.default相当于是默认导出的变量名,所以default后直接跟值即可
5.默认导入:
import name from "path/*.js" 注意:name就是默认导出的接口名字