이 두가지 방법은 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));