ES6模块与CommonJS模块有什么区别?

一、区别:

1.CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。

2.CommonJS 模块的require()是同步加载模块,ES6 模块的import命令是异步加载,有一个独立的模块依赖的解析阶段。

3.CommonJS是对模块的浅拷⻉,ES6 Module是对模块的引⽤,即ES6 Module只存只读,不能改变其值,具体点就是指针指向不能变,类似const 。

4.import的接⼝是read-only(只读状态),不能修改其变量值。 即不能修改其变量的指针指向,但可以改变变量内部指针指向。可以对commonJS对重新赋值(改变指针指向),但是对ES6 Module赋值会编译报错。

二、共同点:

1.CommonJS和ES6 Module都可以对引⼊的对象进⾏赋值,即对对象内部属性的值进⾏改变。

备注:详解请移步ES6模块与CommonJS模块的差异

你可能感兴趣的:(Javascript,es6,node.js,javascript)