정의
개발하는 어플의 크기가 커지면 기능들을 분리해야 한다.
이때 분리된 파일 각각을 모듈이라고 한다.
모듈은 대게 클래스 하나 혹은 특정한 목적을 가진 복수의 함수로 구성된 라이브러리 하나로 구성된다.
구성
- AMD : 가장 오래된 모듈로 require.js 라이브러리를 통해 처음 개발
- CommonJs : Node.js 서버를 위한 모듈
- UMD : AMD, CommonJs 등 다양한 모듈을 함께 사용하기 위한 모듈
특징
- 모듈은 항상 엄격모드로 실행된다.
- 모듈레벨스코프를 가진다. 따라서 모듈 내부에서 정의한 변수나 함수는 다른 스크립트에서 접근할 수 없다.
- 동일한 모듈이 여러 곳에서 사용되더라도 모듈은 최초 호출 시 단 한 번만 실행된다.
모듈 내 함수나 객체 등은 export
키워드로 내보낼 수 있다. 내보내진 기능은 import
키워드를 사용해 가져와 사용할 수 있다.
브라우저는 자동으로 스크립트를 불러오고 평가한다.