您好,登錄后才能下訂單哦!
這篇文章主要介紹“es6 Module好處有哪些”,在日常操作中,相信很多人在es6 Module好處有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”es6 Module好處有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
CommonJS加載的是一個對象(module.export),該對象只有在腳本運行完成之后才會生成,ES6不是對象,它對外的接口是一種靜態定義,在代碼靜態解析階段就會生成。
es6模塊化module和CommonJS和AMD模塊(運行時加載)的區別
1、運行時加載
//CommonJS模塊
let{stat,exists,readFile}=require('fs');
//等同于
let_fs=require('fs');
letstat=_fs.stat;
letexists=_fs.exists;
letreadfile=_fs.readfile;
上面代碼的實質是整體加載fs模塊(即加載fs的所有方法),生成一個對象(_fs),然后再從這個對象上面讀取3個方法。這種加載稱為“運行時加載”,因為只有運行時才能得到這個對象,導致完全沒辦法在編譯時做“靜態優化”。
2、ES6可以在編譯時就完成模塊加載
1
2
//ES6模塊
import{stat,exists,readFile}from'fs';
上面代碼的實質是從fs模塊加載3個方法,其他方法不加載。這種加載稱為“編譯時加載”或者靜態加載,即ES6可以在編譯時就完成模塊加載,效率要比CommonJS模塊的加載方式高。當然,這也導致了沒法引用ES6模塊本身,因為它不是對象。
ES6模塊module的好處
1、由于ES6模塊是編譯時加載,使得靜態分析成為可能。有了它,就能進一步拓寬JavaScript的語法,比如引入宏(macro)和類型檢驗(typesystem)這些只能靠靜態分析實現的功能。
2、不再需要UMD模塊格式了,將來服務器和瀏覽器都會支持ES6模塊格式。目前,通過各種工具庫,其實已經做到了這一點。
3、將來瀏覽器的新API就能用模塊格式提供,不再必須做成全局變量或者navigator對象的屬性。
4、不再需要對象作為命名空間(比如Math對象),未來這些功能可以通過模塊提供
到此,關于“es6 Module好處有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。