1.module.exports
module變量代表當前模塊磅氨。這個變量是一個對象既棺,module對象會創(chuàng)建一個叫exports的屬性讽挟,這個屬性的默認值是一個空的對象:
module.exports = {};
例子:app.js
module.exports.Name="我是電腦";
module.exports.Say=function(){
? console.log("我可以干任何事情")丸冕; ?
}
?
//上邊這段代碼就相當于一個對象
{
? "Name":" 我是電腦"耽梅,
? "Say" (){
? ? ?? console.log("我可以干任何事情"); ?
?? }
}
2.export與module.exports的關(guān)系
Node為每個模塊提供一個exports變量胖烛,指向module.exports眼姐。可以通俗的理解為:
//兩者是相等關(guān)系佩番,但又不是絕對相等關(guān)系
1.module.exports可以直接導(dǎo)出一個匿名函數(shù)或者一個值
module.exports=function(){
? var a="Hello World" ?
? return ? a;
}
但是exports是不可以的众旗,因為這樣等于切斷了exports與module.exports的聯(lián)系。
exports=function(){ ? ? ? ? ? //這樣寫法是錯誤的
? var a="Hello World" ? ? ?? //這樣寫法是錯誤的
? return ? a; ? ? ? ? ? ? ?? //這樣寫法是錯誤的
} ? ? ? ? ? ? ? ? ? ? ? ? ?? //這樣寫法是錯誤的
3.export和export default的區(qū)別
export是es6引出的語法趟畏,用于導(dǎo)出模塊中的變量贡歧,對象,函數(shù)赋秀,類利朵。對應(yīng)的導(dǎo)入關(guān)鍵字是import。
二者的區(qū)別有以下幾點:
export default在一個模塊中只能有一個猎莲,當然也可以沒有绍弟。export在一個模塊中可以有多個。
export default的對象著洼、變量樟遣、函數(shù)、類身笤,可以沒有名字豹悬。export的必須有名字。
export default對應(yīng)的import和export有所區(qū)別
例子:
1.export寫法
//./aap.js
var name="我是電腦"展鸡;
var say=function(){
console.log("我可以干很多事");
}
?
export {name埃难,say}莹弊;
?
//也可以直接一個一個的export但是必須得有名字
export const a=1涤久;
export function data(){
return data;
}
?
?
//其他頁面引入時必須這樣
import {name,say} from "./app.js"
?
2.export default
//app.js
//可以沒有函數(shù)名字
export default function(){
return data;
}
//這里export不能這樣導(dǎo)出
export default const a=12忍弛;
//應(yīng)該這樣導(dǎo)出
const a=12响迂;
export default a
?
//其他頁面引入時必須這樣
import data from "./app.js"
總結(jié):
export default,import語句不需要使用大括號细疚;
用export蔗彤,對應(yīng)的import語句需要使用大括號,一個模塊只能有一個默認輸出疯兼,所以export default只能使用一次然遏。