특정한 기능을 하는 함수나 변수들의 집합
재사용이 가능한 코드 조각
js 파일에서 js 파일로 모듈을 내보내고(import), 내보낸 모듈을 받아(require) 사용할 수 있다.
const add = (a, b) => a + b;
const minus = (a, b) => a - b;
const pi = 3.141592;
module.exports = add;
받아올 때(파일 확장자는 생략해도 무방)
const add = require("./math.js);
사용
const sum = add(1, 2)
아래와 같이 객체화하여 내보낸다.
module.exports = { add, minus, pi };
-> 'add라는 이름(key)로 add 함수를 넘긴다'는 의미
모듈을 받아올 때는 객체를 그대로 math라는 식별자로 받음
const math = require("./math");
여러 개의 식별자를 객체 형태로 내보내고, 모듈을 사용할 파일에서 불러올 때
특정 식별자만 필요하다면 객체 구조 분해 문법을 통해 불러온다.
(메모리를 더 효율적으로 사용할 수 있는 방법)
const { add, minus } = require("./math");
단, const{ }로 가져올 때는 반드시 이름이 동일해야 함.
console.log(pi) //add와 minus만 받아왔으므로, undefined 오류 발생