<1> 浏览器环境
平常测试的时候可以在代码中直接引入在线的转译库,实现在线的把 ES6 的代码转化为浏览器可以识别的 JS 代码。
但如果是上线的话,就不能这样简单的搞了,因为这是在代码执行时现转的。如果代码量比较庞大的话,就会十分费时,导致效率低下,出现页面卡顿,影响性能!!!
<2> node 环境
(1) 在node 环境使用 ES Module
node 后面的版本内置都支持了 ES Module ,即我们可以在 node 环境中直接使用原生的 ES Module 相关内容。【记得把文件扩展名改为 '.mjs'】
直接在终端用 node --experimental-modules index.mjs 即可在 node 的环境下执行该文件!!
注意:
-
在导入内置模块时:
- 可以直接 `import {camelCase} from 'fs'` 来进行导入, - 【因为内置模块做了兼容,即把它们单独导出了,又把它们整体挂载到一个对象身上默认 default 进行导出】!!! -
而导入外部模块时:
- 不可以 `import {camelCase} from 'lodash'` 来进行导入, - 【因为外部模块导出时,是把成员们整体挂载到一个对象身上默认 default 进行导出的】 - 所以只能 `import _ from 'lodash'`
(2) ES Module 与 CommonJS的交互
交互规则:
(3) ES Module 和 CommonJS的差异
- ES Module 中没有 CommonJS 的一些模块全局成员,但可以通过自己的一些内置模块进行功能替代!!