- CommonJS 模块输出的是一个值的拷贝,而 ES6 模块输出的是值的引用;
- CommonJS 模块是运行时加载,而 ES6 模块是编译时输出;
- 关于模块顶层的
this
指向问题,在CommonJS顶层,this
指向当前模块,而在ES6模块中,this
指向undefined
; - 关于两个模块互相引用的问题,在ES6模块当中,是支持加载CommonJS模块的。但是反过来,CommonJS并不能
require
ES6模块; - 因为CommonJS的
require
语法是同步的,所以就导致了CommonJS模块规范只适合用在服务端,而ES6模块无论是在浏览器端还是服务端都是可以使用的,但是在服务端中,还需要遵循一些特殊的规则才能使用 ;
CommonJS和ES6模块的区别
于 2024-02-27 16:29:33 首次发布