❑ 理解模块模式
    ❑ 凑合的模块系统
    ❑ 使用前ES6模块加载器
    ❑ 使用ES6模块

    现代JavaScript开发毋庸置疑会遇到代码量大和广泛使用第三方库的问题。
    解决这个问题的方案通常需要把代码拆分成很多部分,然后再通过某种方式将它们连接起来。

    在ECMAScript 6模块规范出现之前,虽然浏览器原生不支持模块的行为,但迫切需要这样的行为。
    ECMAScript同样不支持模块,因此希望使用模块模式的库或代码库,必须基于JavaScript的语法和词法特性,“伪造”出类似模块的行为。

    模块模式是管理复杂性的永恒工具。开发者可以通过它创建逻辑彼此独立的代码段,在这些代码段之间声明依赖,并将它们连接在一起。此外,这种模式也是经证明能够优雅扩展到任意复杂度且跨平台的方案。

    多年以来,CommonJS和AMD这两个分别针对服务器端环境和受延迟限制的客户端环境的模块系统长期分裂。

    ECMAScript 6规范重新定义了浏览器模块,集之前两个系统之长于一身,并通过更简单的声明性语法暴露出来。浏览器对原生模块的支持越来越好,但也提供了稳健的工具以实现从不支持到支持ES6模块的过渡。