ES6之前的模組化
- ES5的js預設沒有模組化,是js社群自己制定了模組化規範:
- CommenJs:主要用於伺服器端,如nodeJs裡的require;
- AMD:主要用於客戶端,如requireJs和curlJs;
- CMD:主要用於客戶端,如seaJs;
ES6的模組化
- ES6 統一了服務端和客戶端的模組化規範;而且ES6的模組化語法預設使用嚴格模式;
- 如何定義模組:
export const a = 1; export let b = 2; export default 12; 複製程式碼
const a = 1; let b = 2; export{ a, b } 複製程式碼
- 如何引入模組:
- 引入整個js檔案:
import '相對路徑/絕對路徑';
- 引入模組(必須用{}):
import {a,b} from 'url';
- 引入default,不用加{}:
import c,{a,b} from 'url';
- import 語句有提升效果,會自動放在頭部;
- 模組裡內容再定時器後變化,外面也會相應變化;
import()
語句:- 返回一個promise物件,所有pormise的方法如then()等都可以使用;
- 動態引入,按需載入;
- 可以放在if語句裡面;
- 路徑也可以動態切換;
- 可以結合
async/await
語句使用;
- 引入整個js檔案: