[모듈] import, export 키워드, 모듈

2022. 6. 12. 07:18·언어/JAVASCRIPT

변수, 함수, 클래스 내보내기

// 배열 내보내기
export let foods = ["pizza", "hamburger", "chicken"];

// 상수 내보내기
export const MODULES_BECAME_STANDARD_YEAR = 2015;

// 클래스 내보내기
export class User {
	construcor(name) {
    	this.name = name;
    }
}

// 함수 내보내기
const App = () => console.log("hello");
export default App;

// 모듈 내보내기
export { name1, name2 as yeji, ..., nameN} 	// does not set the default export

 

함수 가져오기

import {sayHi, sayBye} from "./say.js";



// say.js
const sayHi = () => console.log("hello");
const sayBye = () => console.log("bye");

const etcHi = () => console.log("bye");
const etcBye = () => console.log("bye");


export default {sayHi, sayBye};

원하는 함수만 import 선언해주면 빌드툴은 선언되지않은 함수는 최종 번들링 결과물에 포함하지 않습니다.

이 과정에서 불필요한 코드가 제거되기 때문에 빌드 결과물의 크기가 작아집니다. -> tree-shaking

 

모듈 export default

 

모듈은 크게 두종류로 나뉩니다.

 

1. 복수의 함수가 있는 라이브러리 형태의 모듈

2. 개체 하나만 선언되어있는 모듈

 

대체로 두번째 방식으로 모듈을 만드는걸 선호 합니다.

 

// user.js
export default class User {
	constructor(name) {
    	this.name = name;
    }
}

// main.js
import User from "./user.js"; // default 한 모듈을 가져오려면 중괄호가 필요 x

new User("john");

export default를 사용하면 해당 모듈엔 개체가 하나만 있다는 사실을 명확히 나타낼 수 있습니다.

최대 하나의 default export가 있으므로 내보낼 개체에 이름이 없어도  해당 모듈을 사용할 수 있습니다.

 

사용예)

export default class {	//클래스 이름이 없음
	constructor() {...}
}

export default () => console.log("say hello"); // 함수 이름이없음

export default ["jan", "yeji", "yunrap"]  // 이름없이 배열형태의 값내보냄

 

'언어 > JAVASCRIPT' 카테고리의 다른 글

실행 콘텍스트 (Execution context)  (1) 2023.12.25
[반복문] for() forEach() map() filter() 어떨때 사용??  (0) 2023.10.04
자바스크립트의 핵심개념  (0) 2022.07.04
return function() 함수를 리턴하는기법은 어디에 사용할까?  (0) 2022.06.25
[인사이드 자바스크립트] 함수와 프로토타입 체이닝  (0) 2022.06.11
'언어/JAVASCRIPT' 카테고리의 다른 글
  • [반복문] for() forEach() map() filter() 어떨때 사용??
  • 자바스크립트의 핵심개념
  • return function() 함수를 리턴하는기법은 어디에 사용할까?
  • [인사이드 자바스크립트] 함수와 프로토타입 체이닝
윤랩용
윤랩용
잘, 자연스럽게, 기분좋게
  • 윤랩용
    yunrap 개발블로그
    윤랩용
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 네트워크
        • HTTP
      • 언어
        • Html
        • CSS
        • JAVASCRIPT
        • JAVA
        • 개발용어
        • 코딩테스트
      • 알고리즘
      • 강의
      • BOOK
        • 모던 자바스크립트 Deep Dive
        • 인사이드 자바스크립트
      • Backend
        • 기능구현
        • Spring
      • FrontEnd
        • React
        • Javascript
        • CSS
        • [사이트프로젝트] 인스타 clone
        • 기능구현
      • 자기개발
      • 업무 TIL
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    promise catch
    var키워드
    즉시실행함수
    콜백패턴
    원시타입
    __proto__
    프로미스체이닝
    접근자프로퍼티
    캡슐화
    dark:
    빌트인객체 프로미스
    시스템테마
    함수프로그래밍
    후속처리메서드
    클로저 js
    물너비구현하기
    create react app
    클로저
    tailwind 다크모드
    비동기요
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
윤랩용
[모듈] import, export 키워드, 모듈
상단으로

티스토리툴바