1.同步or异步:
CommonJS是同步执行的,所以只适用于服务端,如果在客户端的话会带来一段时间的空白;ES6模块则是异步的,所以一般用于客户端;
2.输出的值:
CommonJS输出的值的拷贝(当模块加载完毕后,模块的内部变化就不会影响到第一次输出后的值了),ES6输出的是值的引用(模块不会缓存运行结果,而是动态地去被夹在的模块取值);
3.接口的输出:
CommonJS是运行时加载(整体运行CommonJS模块,运行时才能得到这个对象),而ES6模块是编译时输出接口(可以只加载需要的部分方法,效率要比CommonJS高)
相同点的话都是导入外部模块