true or false๋ฅผ ๊ณ ๋ฅด์์ค
export default๋ฅผ ํ ๋ const, let, var ํค์๋๋ ์ฌ์ฉํ ์ ์๋ค.
default ํค์๋๋ก export ํ ๋ชจ๋์ import ํ ๋๋ ์ด๋ฆ์ด ์๊ธฐ ๋๋ฌธ์ ์๋ฌด ์ด๋ฆ์ผ๋ก import ํด๋ ์๊ด ์๋ค.
๋ชจ๋ ๋ด์์ var ํค์๋๋ก ์ ์ธํ ๋ณ์๋ ์ ์ญ๋ณ์๊ฐ ์๋๋ค.
(1) true const, let, var ํค์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
(2) true default ํค์๋๋ก export ํ ๋์๋ ์ด๋ฆ์ด ์์ด์ ์๋ฌด ์ด๋ฆ์ด๋ ์ฌ์ฉํด๋ ๋๋ค. ๋ฐ๋ผ์ ์คํ ์ฒดํฌ๊ฐ ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํ๋ค.
(3) true ๋ชจ๋ ์ค์ฝํ ์์ ๋ณ์๋ก ๋จ๊ฒ ๋๋ค.
๋ค์ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฝ๋๋ฅผ ๊ณ ๋ฅด์ธ์.
import { pi as PI , square as sq } from './lib.mjs' ;
export default x => x * x ; // (2)
export default const foo = ( ) => { } ; // (3)
(3)
default ํค์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ var, let, const ํค์๋๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ค์ ๋ณด๊ธฐ์ true
, false
๋ฅผ ํ๋จํ์์ค.
(1) : ํ์ฌ Node.js๋ CommonJS ์ฌ์์ ๋ฐ๋ฅธ๋ค.
(2) : ES6์ ์ถ๊ฐ๋ import, export๋ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ์ฌ์ฉํ๊ธฐ ์ ํฉํ๋ค
// CommonJS
// - Javascript Everywhere๋ฅผ ๋ชฉ์ ์ผ๋ก ํ ์๋ฐ์ ์ํน ๊ทธ๋ฃน
// - ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋ฉ ๊ฐ๋ฅํ ์๋ฒํ๊ฒฝ์ ์ ํฉ
// - script ํ์ผ ๋ก๋ฉ์ blocking์ด ๋ฐ์ํ๋ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์๋ ์ฑ๋ฅ์ ํ ๋ฐ์
// math.js
module . exports = {
sum : function ( a , b ) { return a + b }
} ;
// sub.js
const math = require ( './math.js' ) ;
module . exports = {
plusTwo : function ( a ) { return math . sum ( a , 2 ) ; }
}
// main.js
const plusTwo = require ( './sub.js' ) . plusTwo ;
console . log ( plusTwo ( 10 ) ) ;
// AMD (Asynchronous Module Definition)
// - CommonJS๊ฐ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ๋น๋๊ธฐ ๋ชจ๋ ๋ก๋์ ๋ํ ๊ด์ฌ์ด ์ ์ ๊ฒ์ ๋ฐ๊ฐ์ผ๋ก ๋ถ๋ฆฌ๋ ์ง๋จ
// - ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ๋น๋๊ธฐ ๋คํธ์ํฌ ๋ก๋ฉ ์ฒ๋ฆฌ ๊ฐ๋ฅ
// math.js
define ( [ ] , function ( ) {
function sum ( a , b ) { return a + b ; }
return {
sum : sum
}
} ) ;
// sub.js
define ( [ 'math' ] , function ( math ) {
function plusTwo ( a ) {
return math . sum ( a , 2 ) ;
}
return {
plusTwo : plusTwo
}
} ) ;
// main.js
require ( [ 'sub' ] , function ( sub ) {
console . log ( sub . plusTwo ( 10 ) ) ;
} ) ;
// ES6 ๋ชจ๋ (ESM)
// - ES6์ ์ถ๊ฐ๋ ์ฌ์์ผ๋ก ํ์ฌ ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์
// - Node.js ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ค๋ฉด package.json์ type: module ์์ฑ
// math.js
export function sum ( a , b ) { return a + b }
// sub.js
import { sum } from './math.js' ;
export default function ( a ) { return sum ( a , 2 ) }
// main.js
import plusTwo from './sub.js' ;
console . log ( plusTwo ( 10 ) ) ;
๋ชจ๋์ฌ์ฉ์ ์ฅ์ ์๋ํด์ ์์ ํ์์ค.(2๊ฐ์ง)
(1) : ์ฝ๋์ ๋จ์๋ฅผ ๋ช
ํํ ๋ถ๋ฆฌํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ ์ ์๊ฒ๋๋ค.
(2) : ์ฌ์ฌ์ฉ์ฑ์ด ์ข์์ ๊ฐ๋ฐ ํจ์จ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ผ ์ ์๋ค.
p.891