区别:
1. require 是ES6和node都具有,可实现引入
2. export/import 是ES6的导出/引入
3. exports / module.exports
DEMO
demo_export.mjs
'use strict'
//导出变量
export const a = '100';
//导出方法
export const dogSay = function(){
console.log('wang wang');
}
//导出方法第二种
function catSay(){
console.log('miao miao');
}
export { catSay };
//export default导出
const m = 200;
export default m;
//export defult const m = 100;// 这里不能写这种格式。
index.mjs
'use strict'
import { a, dogSay, catSay } from './demo_export.mjs' //导出了 export 方法
import m from './demo_export.mjs' //导出了 export default
import * as testModule from './demo_export.mjs' //as 集合成对象导出
dogSay()
catSay()
console.log(a)
console.log(m)
testModule.dogSay()
console.log(testModule.m) // undefined , 因为 as 导出是 把 零散的 export 聚集在一起作为一个对象,而export default 是导出为 default属性。
console.log(testModule.default) // 100
nodejs下运行ES6语法import/export,文件后缀改为.mjs,执行命令
node --experimental-modules index.mjs