Common.js規範

爲何須要CommonJs規範:

JS沒有模塊系統、標準庫較少、缺少包管理工具;爲了讓JS能夠在任何地方運行,以達到Java、C#、PHP這些後臺語言具有開發大型應用的能力;node

定義和加載模塊

在CommonJs規範中:緩存

  1. 一個文件就是一個模塊,擁有單獨的做用域;函數

  2. 普通方式定義的變量、函數、對象都屬於該模塊內;工具

  3. 經過require來加載模塊;ui

  4. 經過exportsmodul.exports來暴露模塊中的內容;code

模塊中的全部代碼都運行在模塊做用域,不會污染全局做用域;同一個模塊能夠屢次加載,但只會在第一次加載的時候運行一次,而後運行結果就被緩存了,之後再加載,就直接讀取緩存結果;模塊的加載順序,按照代碼的出現順序是同步加載的;對象

__dirname表明當前模塊文件所在的文件夾路徑,__filename表明當前模塊文件所在的文件夾路徑+文件名;作用域

require(同步加載)基本功能:讀取並執行一個JS文件,而後返回該模塊的exports對象,若是沒有發現指定模塊會報錯;開發

模塊內的exports:爲了方便,node爲每一個模塊提供一個exports變量,其指向module.exports,至關於在模塊頭部加了這句話: var exports = module.exports,在對外輸出時,能夠給exports對象添加方法,PS:不能直接賦值(由於這樣就切斷了exportsmodule.exports的聯繫);同步

劃重點

  1. 一個文件就是一個模塊,模塊中全部的代碼都運行在模塊做用域中。在模塊中定義的變量、函數、對象都屬於模塊,不會污染全局做用域。
  2. 同一個模塊能夠加載屢次,但只會在第一次加載的時候運行一次,而後運行結果就被緩存了,之後再加載就直接讀取緩存結果。模塊的加載方式是同步順序加載。
相關文章
相關標籤/搜索