2019-07-18 模块化(ES6简介、CommonJS)

(本文摘录于阮一峰老师所写文章,http://es6.ruanyifeng.com/#docs/intro
,作个人学习使用。)

一些简介

1、ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。阮一峰老师所写书中一般是指 ES2015 标准。

2、Node 是 JavaScript 的服务器运行环境(runtime)。

3、Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行。这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持。

4、在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。
ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系(编译时加载或者静态加载),以及输入和输出的变量。CommonJS 和 AMD 模块,都只能在运行时确定这些东西(运行时加载)。

***export要提供一个对外的接口,不能是一个值,而是一个接口。export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。这一点与 CommonJS 规范完全不同。CommonJS 模块输出的是值的缓存,不存在动态更新。

5、

你可能感兴趣的:(2019-07-18 模块化(ES6简介、CommonJS))