一、exports 與 module.exports
介紹:exports
和 module.exports
是Node中導(dǎo)出模塊的兩種方式。Node為每個(gè)模塊提供一個(gè)exports變量阀捅,指向module.exports。即var exports = module.exports;
针余。所以exports
和module.exports
饲鄙,在不改變他們指向的內(nèi)存地址時(shí),它們是等價(jià)的, 用法也是相似的圆雁。
區(qū)別:module.exports
可直接賦值忍级,但是不能對(duì)exports
直接賦值。
產(chǎn)生區(qū)別的原因:require
引入的對(duì)象本質(zhì)上是module.exports
伪朽。如果對(duì)exports
直接賦值會(huì)導(dǎo)致exports
和 module.exports
指向的不是同一塊內(nèi)存轴咱,此時(shí)exports
的內(nèi)容就會(huì)失效。
// 允許
module.exports = function () {
var a="Hello World"
return a;
}
// 錯(cuò)誤寫法
exports = function () {
var a="Hello World"
return a;
}
二烈涮、 export 與 export default
介紹: export
和 export default
是ES6中引出的語(yǔ)法朴肺,用于導(dǎo)出模塊中的變量,對(duì)象坚洽,函數(shù)戈稿,類。
區(qū)別:
-
export default
在一個(gè)模塊中只能有一個(gè)讶舰,當(dāng)然也可以沒(méi)有鞍盗。export
在一個(gè)模塊中可以有多個(gè); -
export default
的對(duì)象、變量跳昼、函數(shù)般甲、類,可以沒(méi)有名字庐舟。export
的必須有名字; -
export default
對(duì)應(yīng)的import
和export
有所區(qū)別欣除。
使用
export default
導(dǎo)出:
// util.js
// 導(dǎo)出
const common = {
'numid': '數(shù)字賬號(hào)',
'userid': '用戶賬號(hào)',
}
export default common;
// 導(dǎo)入, 不帶{}的導(dǎo)入
import common from './util.js'
export
導(dǎo)出
// util.js
// 導(dǎo)出
const common = {
'numid': '數(shù)字賬號(hào)',
'userid': '用戶賬號(hào)',
};
const mapInfo= {
'durian': '榴蓮',
'mango': '芒果'
};
export { common, mapInfo };
//導(dǎo)入 ,帶{}的導(dǎo)入
import {common, mapInfo } from './util.js';