728x90
1) export(내보내기) -> export 하는 모듈은 "use strict"
- named: 모듈을 특정 이름으로 export
export {myFunction}; //먼저 선언한 함수 내보내기
export const foo = Math.sqrt(2); //상수 내보내기
- default: 모듈을 이름 없이 export
export default function(){} //기본 함수 내보내기
export default class{} //기본 클래스 내보내기
+) 차이점
→ 하나의 모듈(파일)에서는 하나의 default export만 가능
→ named export는 동일한 이름으로 가져올 수 있고, 이름을 바꾸려면 as 사용
import {a as b} from "module.js"
→ {}구분으로는 default export를 사용 불가
2) import(가져오기)
import * as myModule from "my-module.js";
//*: 모듈 전체를 가져옴
//myModule로 바인딩
//my-module.js에서 모듈 가져옴
import { myMember } from "my-module.js";
//모듈에서 myMember라는 하나의 모듈만 가져옴
import { member1, member2 } from "my-module.js";
//모듈에서 member1, member2이라는 모듈을 가져옴(모듈 여러개 가져오기)
import { longlonglonglongName as shortName } from "my-module.js";
//좀 더 편리한 이름으로 지정
//원래 longlonglonglongName이라는 이름의 모듈을 shortName이라는 이름으로 바꿔줌
//,로 구분하여 여러개도 가능
import "my-module.js";
//어떠한 바인딩 없이, 모듈 전체의 사이드 이펙트만 가져옴
+) 기본값 가져오기
import myModule from "my-module.js";
//default export를 통해 내보낸 것을 기본값으로 가져올 수 있음
+) 기본 구문도 함께 지정하려면 기본값 가져오는 부분을 먼저 선언해야 함
import myModule, * as Name from "my-module.js";
//myModule: 기본값 가져오기
//* as Name: 전체를 Name에 바인딩
import myModule, {mem1, mem2} from "my-module.js";
//myModule: 기본값 가져오기
//mem1, mem2: 여러 멤버 가져오기
* 바인딩에 대해서도 이후 다른 글에 정리하기
728x90
'Programming > JavaScript' 카테고리의 다른 글
[Javascript] prompt (0) | 2021.03.15 |
---|---|
[Javascript] 조건문 (0) | 2021.03.09 |
[Javascript] 연산자 (0) | 2021.03.09 |
[Javascript] 숫자와 문자 (0) | 2021.03.09 |
[Javascript] var, let, const (0) | 2021.03.06 |