CommonJS中的require/exports和ES6中的import/export区别?
CommonJS模块的重要特性是加载时执行,即脚本代码在require的时候,就会全部执行。一旦出现某个模块被”循环加载”,就只输出已经执行的部分,还未执行的部分不会输出。ES6模块是动态引用,如果使用import从一个模块加载变量,那些变量不会被缓存,而是成为一个指向被加载模块的引用,需要开发者自己保证,真正取值的时候能够取到值。import/export最终都是编译为require/exports来执行的。CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。Node.js中最常用的恐怕就是require,exports以及module.exports了,那么exports和module.exports这两者有什么区别,在什么情况下使用exports,又在什么时候使用module.exports。先举个