jiaochunxiao / fe-blog

好好学习,天天向上
1 stars 1 forks source link

ES6模块与CommonJS模块的区别 #12

Open jiaochunxiao opened 4 years ago

jiaochunxiao commented 4 years ago

重大差异:

  1. CommonJS 模块输出的是一个值的拷贝,ES模块输出的是值的引用。即ES6 Module只存只读,不能改变其值,具体点就是指针指向不能变,类似const;
  2. CommonJS 模块是运行时加载,ES6模块是编译时输出接口;
  3. import的接口是read-only(只读状态),不能修改其变量值。 即不能修改其变量的指针指向,但可以改变变量内部指针指向,可以对commonJS对重新赋值(改变指针指向),但是对ES6 Module赋值会编译报错。

两者共同点:

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