node的匯入匯出主要是為了進行模組化開發。
1. 瀏覽器開發中的模組
在瀏覽器開發中為了避免命名衝突,方便維護等,採用類或者立即執行函式的方式封裝js**,來避免命名衝突和提公升**的維護性:
這些方式存在的問題就是沒有標準,沒有規範。
2.node.js開發中的模組
node.js採用了commonjs規範實現了模組系統
3.commonjs規範
commonjs規範規定了如何定義乙個模組,如何匯出模組中的變數函式,以及如何使用定義好的模組
- 乙個檔案就是乙個模組
- 每個檔案中的變數函式都是私有的,其它檔案不可見
- 每個檔案中的變數函式需要通過exports進行匯出後,其他檔案才可以使用
- 其他檔案需要使用匯出的資料,必須通過require匯入模組才可以使用
自定義乙個模組
將5.js的變數在5-b.js中使用
node暴露資料的三種方式
1.通過exports.xx = xx;
2.通過module.exports.xx = xx;
3.通過全域性物件暴露(global.xx不符合common.js的規範,不推薦)
global.xx = xx;
通過exports直接賦值返回的是空物件,如果是通過module.exports直接賦值,是可以拿到資料的
1. 如果在匯入檔案時,沒有指定匯入檔案的型別,會先去查詢.js,.json,.node檔案,三種型別的檔案在匯入時都會轉化為js物件返回
2.匯入自定義模組的時候,必須新增路徑(require可以匯入「自定義模組」,「系統模組」,「第三方模組」),「系統模組」和「第三方模組」不需要路徑
HTML 全域性屬性
屬性描述 accesskey 設定訪問元素的鍵盤快捷鍵。class 規定元素的類名 classname contenteditable new規定是否可編輯元素的內容。contextmenu new指定乙個元素的上下文選單。當使用者右擊該元素,出現上下文選單 data new用於儲存頁面的自定義資料...
HTML 全域性屬性
new html5 新屬性。屬性描述 accesskey 設定訪問元素的鍵盤快捷鍵。class 規定元素的類名 classname contenteditablenew 規定是否可編輯元素的內容。contextmenunew 指定乙個元素的上下文選單。當使用者右擊該元素,出現上下文選單 data n...
《HTML 全域性屬性》
new html5 新屬性。屬性描述 accesskey 設定訪問元素的鍵盤快捷鍵。class 規定元素的類名 classname contenteditablenew 規定是否可編輯元素的內容。contextmenunew 指定乙個元素的上下文選單。當使用者右擊該元素,出現上下文選單 data n...