commonJs规范
module.exports 导出
require() 引入
//导出 a.js
var a= 1;
module.exports = {
a: a,
};
//引入
var temp= require('./a');
console.log(temp.a);
ES6模块规范
export 或者 export default 导出
import 引入
//导出 a.js 单一导出
export let a= 1;
export let b= 1;
//引入
import { a,b } from './a'; 单一加载
console.log(a+b);
//导出 b.js
let b= {
aa:11,
bb:11
};
export default b 整体导出
//引入
import b from './b'; //整体加载
console.log(b.aa+b.aa);
区别
导出:exports 与 export
导入:require 与 import
CommonJS 模块输出的是值的拷贝 对于基本类型的数据是值的复制 引用类型是浅拷贝
ES6模块输出的是值的引用 import导入的基本数据类型 无法直接进行修改 或者说import的引入无法进行赋值或者重新定义
CommonJS 模块是运行时加载,ES6模块是编译时
CommonJS 的require()命令不能加载 ES6 模块
ES6 模块可以整体加载CommonJS的导出