Programming/JavaScript

[Javascript] export와 import

코딩뽀시래기 2021. 3. 9. 16:51
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