2 5.1 概述
JavaScript 一直没有模块(module)体系,因此无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来,这对开发大型的、复杂的项目形成了巨大障碍。
在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommnonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上实现了模块功能,而且实现得相当简单,完全可以取代 ComrnonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案 。
ES6 模块的设计思想是尽量静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。