不是說js不需要編譯嗎,那‘ES6模塊是編譯時(shí)加載’是什么意思
ES6模塊是編譯時(shí)加載:模塊之間的依賴關(guān)系,在運(yùn)行之前(即編譯時(shí))就通過靜態(tài)分析來確定好了的。
①在如gulp、webpack等自動(dòng)化工具的打包過程中將ES6轉(zhuǎn)化成ES5的過程,可以理解為編譯。
JS的“不需要編譯”這個(gè)概念應(yīng)當(dāng)理解成沒有直觀的編譯過程,計(jì)算機(jī)只認(rèn)識(shí)二進(jìn)制文件,因此所有的編程語言或腳本語言都需要進(jìn)行底層的編譯。而“ES6模塊是編譯時(shí)加載”的意思可能有兩種情況:
ES6模塊不是對(duì)象,而是export命令顯示指定輸出的代碼,輸入時(shí)也采用靜態(tài)命令的形式。
JS的“編譯”可能指三種流程:transform、bundle、uglify。
意思就是,加載不是靜態(tài)引入的,而是運(yùn)行時(shí)判斷后加載的