1. 程式人生 > >ES6,CommonJS 區別

ES6,CommonJS 區別

es6 exports 多個 建議 yii {} 語義 過程 開發

Javascript,javascript是一種腳本編程語言,有自己獨立的語法與語義,沒有javascript,也就沒有其他的那些概念了。

關於ES6,可直接理解為javascript的增強版(增加了新的規範、特性與功能)或最新版,兩者之間雖然略有差異,但也可以忽略(不要在意這些細節,呵呵),就有點類似於JAVA8與JAVA語言的關系,同樣既然有ES6,那麽也還有ES 5與ES 3,都是Javascript在發展過程中的發布版本。

Commonjs、AMD以及曾經很火的CMD都只是為了解決javascript文件之間的依賴與引用問題,所以它們只是一種Javascript的包管理規範。在組織你的JS代碼時,你完全可以根據自己的喜好,選擇合適的包管理規範,但要註意,盡可能只選擇一種。

在nodejs出現之前,javascript主要應用於瀏覽器端,所以nodejs也很好理解了,nodejs是對javascript脫離瀏覽器的應用延展,它還提供了運行引擎與相關API,所以nodejs是javascript開發本地應用、服務器應用的一個開發套件,註意了,因為nodejs采用了javascript的語法,所以nodejs不是一種開發語言。

作者:http://blog.csdn.net/yiifaa/article/details/54376458

es6 {

  export : ‘可以輸出多個,輸出方式為 {}‘ ,

  export default : ‘ 只能輸出一個 ,可以與export 同時輸出,但是不建議這麽做‘,

  解析階段確定對外輸出的接口,解析階段生成接口,

  模塊不是對象,加載的不是對象,

  可以單獨加載其中的某個接口(方法),

  靜態分析,動態引用,輸出的是值的引用,值改變,引用也改變,即原來模塊中的值改變則該加載的值也改變,

  this 指向undefined

}

commonJS {

  module.exports = ... : ‘只能輸出一個,且後面的會覆蓋上面的‘ ,

  exports. ... : ‘ 可以輸出多個‘,

  運行階段確定接口,運行時才會加載模塊,

  模塊是對象,加載的是該對象,

  加載的是整個模塊,即將所有的接口全部加載進來,

  輸出是值的拷貝,即原來模塊中的值改變不會影響已經加載的該值,

  this 指向當前模塊

}

ES6,CommonJS 區別