CommonJS规范
每个文件就是一个模块,有自己的作用域。在一个文件里面定义的
变量,函数,类,都是私有的,对其他文件不可见。
CommonJS使用 module.exports
和 require
来导出导入模块
支持条件表达式
ES6规范
尽量的静态化,使得编译时就能确定模块的依赖关系以及输入和输出的变量
ES6使用exports
和 import
来导出导入模块
import
-函数可以读取并执行一个JavaScript文件,然后返回被读取的模块的export命令所指定输出的代码。
export
-与export default
均可用于导出常量、函数、文件、模块,export可以有多个,export default只能有一个。
require与import的区别
1,require是CommonJS规范的模块化语法,import是ECMAScript 6规范的模块化语法;
2,require是运行时加载,import是编译时加载;
3,require可以写在代码的任意位置,import只能写在文件的最顶端且不可在条件语句或函数作用域中使用;
4,require通过module.exports导出的值就不能再变化,import通过export导出的值可以改变;
5;require通过module.exports导出的是exports对象,import通过export导出是指定输出的代码;
6,require运行时才引入模块的属性所以性能相对较低,import编译时引入模块的属性所所以性能稍高。