common-JS 中的 require/exports 和 ES6 中 import/export 的区别是什么?

commonJS 中的 require/exports:


commonJS 模块的重要特性是加载时执行,及脚本代码在 require 的时候,就会全部执 
行。一旦出现某个模块被“循环加载”就只输出已经执行的部分,还没有执行的部分是不输出的 


ES6 中 import/export :


ES6 模块是动态引用,如果使用 import 从一个模块加载变量,那些变量不会缓存,而是成 为 一个指向被加载模块的引用,import/export 最终都是编译为 require/exports 来执行的
require/exports来自野生规范当中,即这些规范是JavaScript社区中的开发者自己草拟的规则,得到了大家的承认和广泛的应用,比如CommonJS、AMD、CMD等等。而Node遵循CommonJS规范,requireJS遵循 AMD(Asynchronous Module Definition,即异步模块加载机制),seaJS遵循CMD。
因为Node无法直接兼容ES6语法,所以现阶段require/exports仍然是必要且是必须的。
import/export来自ES6的新规范,即TC39 制定的新的 ECMAScript 版本。
babel诞生后,它能将还未被宿主环境(各大浏览器、Node)直接支持的ES6语法编译为ES5,也就是能将ES6 Module 的import/export编译为CommonJS的require/exports这种写法。

差异与不同:

 

 

 

 

 

 感兴趣的可以去查阅更多资料 谢谢大家

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值