ES6之前的模块化
- ES5的js默认没有模块化,是js社区自己制定了模块化规范:
- CommenJs:主要用于服务器端,如nodeJs里的require;
- AMD:主要用于客户端,如requireJs和curlJs;
- CMD:主要用于客户端,如seaJs;
ES6的模块化
- ES6 统一了服务端和客户端的模块化规范;而且ES6的模块化语法默认使用严格模式;
- 如何定义模块:
export const a = 1; export let b = 2; export default 12; 复制代码
const a = 1; let b = 2; export{ a, b } 复制代码
- 如何引入模块:
- 引入整个js文件:
import '相对路径/绝对路径';
- 引入模块(必须用{}):
import {a,b} from 'url';
- 引入default,不用加{}:
import c,{a,b} from 'url';
- import 语句有提升效果,会自动放在头部;
- 模块里内容再定时器后变化,外面也会相应变化;
import()
语句:- 返回一个promise对象,所有pormise的方法如then()等都可以使用;
- 动态引入,按需加载;
- 可以放在if语句里面;
- 路径也可以动态切换;
- 可以结合
async/await
语句使用;
- 引入整个js文件: