es6

esm和commonjs规范的区别

1、esm是引用赋值,并且是编译时加载。模块内部引用的变化,会反应在外部

一个模块中可以有多个export,但是只能有一个export default。
export default可以任意指定接受的名称,而export只能固定名称

2、commonjs是值拷贝,并且是运行时加载。输出的内容,就是 exports 对象的属性,模块运行结束,属性就确定了。不会再变了

module.exports 和 exports指向的是一个引用.

console.log(module.exports === exports); // true

如果修改exports = {}或者module.exports的指向,那么就不在全等. 

你可能感兴趣的:(es6)