區(qū)別:
1. require 是ES6和node都具有,可實(shí)現(xiàn)引入
2. export/import 是ES6的導(dǎo)出/引入
3. exports / module.exports
DEMO
demo_export.mjs
'use strict'
//導(dǎo)出變量
export const a = '100';
//導(dǎo)出方法
export const dogSay = function(){
console.log('wang wang');
}
//導(dǎo)出方法第二種
function catSay(){
console.log('miao miao');
}
export { catSay };
//export default導(dǎo)出
const m = 200;
export default m;
//export defult const m = 100;// 這里不能寫這種格式吧兔。
index.mjs
'use strict'
import { a, dogSay, catSay } from './demo_export.mjs' //導(dǎo)出了 export 方法
import m from './demo_export.mjs' //導(dǎo)出了 export default
import * as testModule from './demo_export.mjs' //as 集合成對(duì)象導(dǎo)出
dogSay()
catSay()
console.log(a)
console.log(m)
testModule.dogSay()
console.log(testModule.m) // undefined , 因?yàn)? as 導(dǎo)出是 把 零散的 export 聚集在一起作為一個(gè)對(duì)象磷仰,而export default 是導(dǎo)出為 default屬性。
console.log(testModule.default) // 100
nodejs下運(yùn)行ES6語(yǔ)法import/export境蔼,文件后綴改為.mjs灶平,執(zhí)行命令
node --experimental-modules index.mjs