module語法

參考文章阮一峰ES6:https://es6.ruanyifeng.com/#docs/module

簡(jiǎn)介

es6之前,模塊加載方案最主要的有 CommonJS 和 AMD 兩種。前者用于服務(wù)器,后者用于瀏覽器。
CommonJS 模塊就是對(duì)象,輸入時(shí)必須查找對(duì)象屬性。如:
// CommonJS模塊
let { stat, exists, readFile } = require('fs');

// 等同于
let _fs = require('fs');
let stat = _fs.stat;
let exists = _fs.exists;
let readfile = _fs.readfile;

上面代碼的實(shí)質(zhì)是整體加載fs模塊(即加載fs的所有方法),生成一個(gè)對(duì)象(_fs),然后再?gòu)倪@個(gè)對(duì)象上面讀取 3 個(gè)方法。這種加載稱為“運(yùn)行時(shí)加載”,因?yàn)橹挥羞\(yùn)行時(shí)才能得到這個(gè)對(duì)象,導(dǎo)致完全沒辦法在編譯時(shí)做“靜態(tài)優(yōu)化”。

ES6 模塊不是對(duì)象,而是通過export命令顯式指定輸出的代碼,再通過import命令輸入。如:

// ES6模塊
import { stat, exists, readFile } from 'fs';

上面代碼的實(shí)質(zhì)是從fs模塊加載 3 個(gè)方法,其他方法不加載。這種加載稱為“編譯時(shí)加載”或者靜態(tài)加載,即 ES6 可以在編譯時(shí)就完成模塊加載,效率要比 CommonJS 模塊的加載方式高。當(dāng)然,這也導(dǎo)致了沒法引用 ES6 模塊本身,因?yàn)樗皇菍?duì)象。

嚴(yán)格模式

ES6 的模塊自動(dòng)采用嚴(yán)格模式(嚴(yán)格模式的限制自行百度)

export 命令

模塊功能主要由兩個(gè)命令構(gòu)成:export和import。export命令用于規(guī)定模塊的對(duì)外接口,import命令用于輸入其他模塊提供的功能。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 在ES6之前,模塊加載方案,最主要的有CommonJS和AMD兩種。前者用于服務(wù)器,后者用于瀏覽器。ES6實(shí)現(xiàn)了模...
    oWSQo閱讀 625評(píng)論 0 0
  • es6從零學(xué)習(xí)(五):Module的語法 ES6 模塊的設(shè)計(jì)思想,是盡量的靜態(tài)化,使得編譯時(shí)就能確定模塊的依賴關(guān)系...
    IT楊閱讀 428評(píng)論 0 1
  • javascript語法之前一直存在一個(gè)問題就是沒有一個(gè)模塊加載方案,即使在CSS中都存在@import來讓我們可...
    羊烊羴閱讀 445評(píng)論 0 0
  • 模塊化,輸入輸出;統(tǒng)一規(guī)范;ES6做了近10年最大的更新;加油;學(xué)會(huì)它;并使用它;畢竟現(xiàn)在大家都在用; 歷史上,J...
    吳高亮閱讀 667評(píng)論 1 6
  • 歡迎訪問我的博客https://qqqww.com/,祝碼農(nóng)同胞們?cè)缛兆呱先松鷰p峰,迎娶白富美~~~ 1 前言 在...
    這里王工頭閱讀 821評(píng)論 0 0

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