但两个规范实质上并不等同,所以存在着不少的区别,如不能 import(var) 但能 require(var),详细可查看 ES6 模块系统,此处记录一下两个可能比较直接影响代码书写的差异点。

这点意味着,如果基于 ES6 的模块 MA,模块内部有直接运行的代码(而不是调用 export 内容后才运行),并且那代码依赖于特定的 global 变量 v(全局依赖是个不好的实践)。那么在父模块中先声明赋值 global 变量 v ,然后再 import 模块 MA,模块 MA 内的直接运行的代码能获取到 global 变量 v 的预期是无法实现的。