筆記:Commonjs/AMD規(guī)范與ES6模塊機制

Commonjs規(guī)范

1.從node庫中引入模塊,var math=require('math');即可
2.從非node庫中引入模塊,var math=require('./math');即可
3.exports導出模塊,{}內(nèi)部寫方法
4.同步加載

AMD規(guī)范

1.用define方法定義模塊
2.require調(diào)用模塊
3.異步加載

ES6中模塊機制

1.標準使用import引入模塊
2.import放在文件最開始,編譯階段執(zhí)行的
3.import中不能含有表達式或者變量,無法實現(xiàn)動態(tài)加載,語法上條件加載無法實現(xiàn)

區(qū)別

CommonJS 模塊輸出的是一個值的拷貝,ES6 模塊輸出的是值的引用。
CommonJS 模塊是運行時加載,ES6 模塊是編譯時輸出接口
ES6 模塊的運行機制與 CommonJS 不一樣。JS 引擎對腳本靜態(tài)分析的時候,遇到模塊加載命令import,就會生成一個只讀引用。等到腳本真正執(zhí)行時,再根據(jù)這個只讀引用,到被加載的那個模塊里面去取值。換句話說,ES6 的import有點像 Unix 系統(tǒng)的“符號連接”,原始值變了,import加載的值也會跟著變。因此,ES6 模塊是動態(tài)引用,并且不會緩存值,模塊里面的變量綁定其所在的模塊。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容