commonjs模块和es6模块的区别

es6模块在浏览器端和服务器端都可用,commonjs只适用于服务端

1,es6是编译时输出接口(接口在代码在解析阶段就已经生成),commonjs是运行时加载,在脚本完成的时候才全部加载完

2,es6输出的是值的引用,commonjs输出的是值的拷贝(vue2的组件data是一个function)

3,es6语法是静态的(import必须在顶层,其参数只能是字符串)

commonjs语法是动态的,require可以根据条件判断是否记载,参数也可以是变量

4,es6导入的模块是只读的引用(不能够修改变量的指针指向,内部的修改可以),commonjs导入的是可变的普通的变量

5,es6支持异步加载,commonjs不支持

你可能感兴趣的:(es6,前端,javascript)