이 두가지 방법은 moment라는 라이브러리를 불러오는 동일한 작업을 수행한다.
// 1. require
const moment = require("moment");
// 2. import
import moment from "moment";
require
은 NodeJS에서 사용되고 있는 CommonJS 키워드import
는 ES6(ES2015)에서 새롭게 도입된 키워드import는 ES6 모듈 시스템의 문법이다.
import
, from
, export
, default
처럼 모듈 관리 전용 키워드를 사용하기 때문에 가독성이 좋습니다. export
키워드를 사용해서 명시적으로 내보낸다Named Exports
라고 부른다.export default
키워드를 사용하면, 명시적으로 하나의 모듈에서 하나의 객체만 내보낼 수 있다.const exchangeRate = 0.91;
// 안 내보냄
function roundTwoDecimals(amount) {
return Math.round(amount * 100) / 100;
}
// 내보내기 1 - 선언과 동시에 내보내기
export function canadianToUs(canadian) {
return roundTwoDecimals(canadian * exchangeRate);
}
// 내보내기 2 - 선언 후 별도로 내보내기
const usToCanadian = function (us) {
return roundTwoDecimals(us / exchangeRate);
};
export { usToCanadian };
const exchangeRate = 0.91;
// 안 내보냄
function roundTwoDecimals(amount) {
return Math.round(amount * 100) / 100;
}
// 내보내기 3 - default를 붙여 단일 객체로 내보내기
export default {
canadianToUs(canadian) {
return roundTwoDecimals(canadian * exchangeRate);
},
usToCanadian: function (us) {
return roundTwoDecimals(us / exchangeRate);
},
};
// 내보내기 4 - default를 붙여서 내보내는데 선언 후 별도로 내보내기 :
const exchangeRate = 0.91;
const obj = {
canadianToUs(canadian) {
return roundTwoDecimals(canadian * exchangeRate);
},
};
obj.usToCanadian = function (us) {
return roundTwoDecimals(us / exchangeRate);
};
export default obj;
사용 방법
여러 객체(Named Exports)를 불러올 떄
ES6의 Destructuring 문법을 사용해서 필요한 객체만 선택적으로 전역에서 사용
모든 객체에 별명(alias)을 붙이고 그 별명을 통해서 접근
단일 객체불러오기
import
키워드를 사용해서 아무 이름이나 원하는 이름을 주고 해당 객체를 통해 속성에 접근// 1. Destructuring 문법 이용
import { canadianToUs } from "./currency-functions";
console.log(canadianToUs(50));
// 2. 별명 붙여서 접근
import * as currency from "./currency-functions";
console.log(currency.usToCanadian(30));
// 3. 단일객체 불러오기
import something from "./currency-object";
console.log(something.canadianToUs(50));
console.log(something.usToCanadian(30));