
const {odd, even} = require('파일 위치') -> import {odd, even} from '파일위치'
const odd = "홀수"
const even = "짝수"
module.exports = {odd, even}
->
export const odd = "홀수"
export const even = "짝수"
OR
export const odd = "홀수"
export const even = "짝수"
export {odd,even}
OR
export const {odd,even} = {odd:"홀수", even:"짝수"}
import, export default는 require나 module처럼 함수나 객체가 아니라 문법 그자체
await를 사용할 때 async로 감싸줘야 했는데 mjs 파일인 경우 바로 await a();가 (최상위 한정) 가능하다
async () => { await a(); }
=====>
await a();
CommonJS 모듈은 다이내믹 임포트가 가능하다.
dynamic.js
const a = false;
if(a) {
require('./func');
}
ES 모듈은 CommonJS 모듈처럼 다이내믹 임포트가 불가능하다.
ES 모듈에서는 import가 최상단에 선언되어야 한다.
하지만 import 함수를 사용해서 할 수 있다.
const a = true;
if(a) {
const m1 = await import('./func.mjs')
console.log(m1);
const m2 = await import('./var.mjs')
console.log(m2)
}
import 함수는 promise라서 await를 붙여줘야 한다!!
export default 한 경우 data가 default 안에 들어있다.
module.exports랑 다르다