ES6,CommonJS 區別
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 區別