require/exports、import/export|require/exports、import/export 的区别

require/exports先出现。 它是在js社区的开发者自己草拟的规范中产生的,得到大家认可或广泛应用 import/export是ES6的。 CommonJS 作为 Node.js 的规范,一直沿用至今。由于 npm 上 CommonJS 的类库众多,以及 CommonJS 和 ES6 之间的差异,Node.js 无法直接兼容 ES6。所以现阶段 require/exports 任然是必要且实必须的
1.require的调用时间为运行时调用,所以require可以出现在文件的任何地方。动态加载
2.import是编译时调用,所以必须放在文件头部。静态加载
【require/exports、import/export|require/exports、import/export 的区别】require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require
require/exports 是必要且必须的。因为事实是,目前你编写的 import/export 最终都是编译为 require/exports 来执行的

export default导出的东西只能用import导入。 而module.exports和exports的东西可以以任何一种方式导入。`

a.js
var sex="boy"; var echo=function(value){ console.log(value) } export {sex,echo}

b.js
import {sex,echo} from "./ex.js" console.log(sex) echo(sex)

html文件(type="module")

    推荐阅读