16.9 ECMAScript 6 模块的益处
乍一看, ECMAScript 6 的内置模块可能看起来像是一个无聊的特性 - 毕竟,我们已经有几种不错的模块系统。但是 ECMAScript 6 模块有一些特性是库无法提供的,比如更加紧凑的语法和静态的模块结构(这对代码优化、静态检测等等有帮助)。同时也能够 - 充满希望地 - 结束当前占主导的标准 CommonJS 和 AMD 之间的分裂格局。
模块有一个单一的本地标准意味着:
- 不再有 UMD ( Universal Module Definition ): UMD 是一种模式的名字,该模式允许同一个文件可以在若干个模块系统中使用(例如 CommonJS 和 AMD )。一旦 ES6 成为唯一的模块标准, UMD 就会成为过去。
- 新的浏览器 API 会变得模块化,而不是全局变量或者
navigator
的属性。 - 不再用对象作为命名空间:像
Math
和JSON
这种对象在 ECMAScript 5 中起着命名空间的作用。在将来,这种功能可以通过模块实现。