javascript tip
  • Introduction
  • babel / polyfill
  • 變數常數資料類型
  • 流程控制、迴圈
  • 函式
  • 陣列
  • 物件
  • 原型
  • 事件
  • Promise
  • async/await
  • Fetch(簡易json傳輸)
  • 模組
  • 雜項
Powered by GitBook
On this page
  • ES6的模組系統
  • 輸出與輸入
  • 輸入

Was this helpful?

模組

社群上發展了兩套知名的模組系統,但它們並不相容: CommonJS Modules Asynchronous Module Definition (AMD)

ES6中加入了模組系統的支援,它採用了CommonJS與AMD的優點,成了未來JavaScript語言中重要的特性。

ES6的模組系統

  • ES6的模組是一個檔案一個模組。方便不同的模組互相取用,擴充應用程式規模,並進行良好的管理。

  • ES6模組使用export(輸出)與import(輸入)語句來進行模組輸出與輸入。輸出通常位於檔案最後,輸入位於最前面。

輸出與輸入

//一個檔案一個輸出
//實務上一個檔案內有一個類別,使用一個輸出
function aFunction(param){
  return param * param
}
//單一輸出用default
export default aFunction



//一個檔案多個輸出
//實務上資料類型的定義會集中在一個檔案,有多個輸出
export const aString = 'test'

export function aFunction(){
  console.log('function test')
}

export const aObject = {a: 1}

export class aClass {
  constructor(name, age){
    this.name = name
    this.age = age
  }
}

輸入

  • 一種是每個要輸入的名稱都需要定在花括號之中。若只有一個輸出,就不用花括號。

  • 另一種是使用萬用字元(*)

//第一種
//匯入在lib.js內的指定資料
import {aString, aObject, aFunction, aClass} from './lib.js'

console.log(aString)
console.log(aObject)

//第二種
//匯入所有lib.js內的匯出資料,取名mymodule
import  * as myModule from './lib.js'

console.log(myModule.aString)
console.log(myModule.aObject)
PreviousFetch(簡易json傳輸)Next雜項

Last updated 5 years ago

Was this helpful?