๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ๊ตฌ์กฐ์ ๋ง๊ฒ ๋ฐ๋ก ๊ฐ๋ณ ๋ณ์์ ๊ฐ์ ํ ๋น
์ด๋ค ๋ฐฐ์ด์ด ์๊ณ , ๊ฐ ์์๊ฐ ๋๋ฌด ์ค์ํด์ ๊ฐ ๋ณ์ ์์ ๊ทธ ๊ฐ์ ์ง์ ํ๊ณ ์ถ์ ๋?
const arr= [2,3,4]
const a=arr[0]
const b=arr[1]
const c=arr[2]
๋ฌผ๋ก ์ด๋ ๊ฒ ์จ๋ ๋๊ฒ ์ง๋ง, ์์๊ฐ ๋ฐฑ๊ฐ ๋๋ ์๊ฐ ๋ด ์๋ชฉ๋ ๋ ๋ผ๊ฐ๋๊ฑฐ๋ค...
๋จธ๋ฆฌ๋ฅผ ์ ์ฐ๋ฉด ๋์ ์์คํ ์๋ชฉ๋ ์งํฌ ์ ์๋ค!
์ค๋์ ๊ตฌ์กฐ๋ถํดํ ๋น์ ๋ํด ์์๋ณด์.
const [a,b,c]=[2,3,4] // ๊ธฐ๋ณธ
const [d,e,f=1]=[2,3] //default ๊ธฐ๋ณธ๊ฐ
const arr = [1,2,3]
const [,,q]=arr
console.log(q)๋ 3์ด ๋์จ๋ค //๋ฐํ๊ฐ ๋ฌด์
const arr2=[1,2,3]
const [a,...rest]=arr2
console.log(a,rest)๋ 1 [2,3]์ด ๋์จ๋ค //๋๋จธ์ง ํ ๋น
๊ฐ์ฒด์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ผ ๋ ๋ณ์๋ช ์ object์ key ๊ฐ๊ณผ ๋๊ฐ์ด ๋ง์ถฐ์ค์ผ ํ๋ค. ์ด๋ฆ ๋ณ๊ฒฝ๋ ๊ฐ๋ฅํ๊ธด ํจ!
const {name: a, age: b} = {name: 'kim', age:30}
// ๊ธฐ๋ณธ: a,b์๊ฒ ๊ฐ๊ฐ 'kim', 30 ํ ๋น๋จ
const {name,age} = {name: 'kim', age:30}
// name, age ๋ณ์ ์์ฑ๋๊ณ 'kim', 30 ํ ๋น๋จ
// name:name, age:age์ผ ๊ฒฝ์ฐ name, age๋ก๋ง ์จ๋ ๊ฐ๋ฅ
const {name:์ด๋ฆ, age=31}={name:'kim'}
console.log(์ด๋ฆ,age)์ 'kim',31
// ๋ณ์๋ช
๋ณ๊ฒฝ+๊ธฐ๋ณธ๊ฐ
const obj={a:1,b:2,c:3}
const {a, ...rest} = obj
console.log(a,rest)๋ 1 {b:2,c:3}์ด ๋๋ค
// ๋๋จธ์ง ํ ๋น
์ฝ๋๊ฐ ๊ธธ์ด์ง๋ฉด ํ ํ์ผ์ ์ฃผ๊ตฌ์ฅ์ฐฝ ์์๋ ๊ฒ ์๋๋ผ ๋ค๋ฅธ ํ์ผ๋ก ๋๋์ด ๋ณด๊ดํ๋ ๊ฒ์ด ์ข๋ค. ๋ค๋ฅธ ํ์ผ๋ก ์ชผ๊ฐ๋๊ณ , ๊ทธ๊ฑธ ์ฒจ๋ถํ๋ ๋ฐฉ์์ ๋ํด ์์๋ณด์!
์ฐธ๊ณ ๋ก,
๋๋ movie.js์ ์๋ ์ ๋ณด๋ฅผ index.js์ ๊ฐ์ ธ์์ ์ธ๊ฑฐ๋ค.
์ผ๋จ, index.html
์์ script type="module"
์ ์ด์ฃผ๊ธฐ
๋ค์์ movie.js ํ์ผ์ด๋ค.
const title='์ค์ฆ๋ฉ์ ๋ฌธ๋จ์'
const year=2023
export default title;
export default๋ ํ ํ์ผ์์ 1ํ๋ง ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
default๋ก ๋ด๋ณด๋ด๊ณ ๋๋ฉด import ํ ๋์ ์ด๋ฆ์ ์๋ฌด๋ ๊ฒ๋ ์ง์ด๋ ์๊ด์๋ค.
import ์๋ฌด๋ ๊ฒ๋์ง์์ด๋ฆ from './movie.js'
์ฌ๋ฌ๊ฐ๋ฅผ exportํ๊ณ ์ถ์ ๋ {}์์ ์ฐจ๊ณก์ฐจ๊ณก ์์๊ฒ ๋ด์์ ๋ณด๋ธ๋ค.
const title='์ค์ฆ๋ฉ์ ๋ฌธ๋จ์'
const year=2023
export {title,year}
์๋๋ฉด ๋ด๊ฐ ๋ณด๋ด๊ณ ์ถ์ ๊ฒ ์์ ์ผ์ผ์ด export๋ฅผ ๋ถ์ด๋ ๋ฐฉ๋ฒ๋ ์๋ค.
export const title='์ค์ฆ๋ฉ์ ๋ฌธ๋จ์'
export const year=2023
๋๊ฐ์ง ๋ฐฉ๋ฒ ์ค ์ด๋๊ฒ์ผ๋ก ํ๋ importํ ๋ ๋ด ๋ง์๋๋ก ์๋ช
ํ์ง ๋ง๊ณ , ์ด์ js์์ ์ผ๋ ์ด๋ฆ ๊ทธ๋๋ก ๊ฐ์ ธ์์ผ ํ๋ค. import {title,year} from './movie.js'
const title='์ค์ฆ๋ฉ์ ๋ฌธ๋จ์'
const year=2023
const ์ํ๊ด='๋ฉ๊ฐ๋ฐ์ค'
export {title,year}
export default ์ํ๊ด
๋์ ํ ํ์ผ ์์์ ํผ์ฉ ๊ฐ๋ฅ!
๋จ import ํด์ฌ๋๋ default๋ก ๋ณด๋ธ ๊ฒ๋ถํฐ importํด์ค๊ธฐ
import ์ํ๊ด,{title,year} from './movie.js'
default๋ก ๋ณด๋ธ๊ฑด import ํ ๋ ๋ด ๋ง์๋๋ก ์๋ช
์ด ๊ฐ๋ฅํ๋ฐ, ๊ทธ๋ฅ export {a,b} ์ด๋ฐ์์ผ๋ก ๋ณด๋ธ ๊ฑด ๊ทธ๋๋ก ์จ์ผํ๋๊ฒ ๋ถ๋ง์ด๋ผ๋ฉด, ์ฌ์ค ๋ฐฉ๋ฒ์ด ์๋ค.
import {title as ์ ๋ชฉ, year as ๊ฐ๋ด์ฐ๋} ๋ผ๊ณ ์ฐ๋ฉด ์ฌ์ค ๋ณ์๋ช
์ ๊ฐ์ง๋๊ฒ ๋ฐ๊ฟ ์ ์๋ค.
๋์ exportํ ๋ ์ฐฉํ๊ฒ ๊ทธ๋๋ก ์ผ์ด์ผํ๋ค.
export , import ํ ๋ ๋๋ฌด ๋ง์ ์ ๋ณด๋ฅผ ์ฎ๊ฒจ์ผํด์ ๋ด ์๋ชฉ ๊ฑฑ์ ์ด ๋ค์๊ธ ์๊ธด๋ค๋ฉด,
*
๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ํ๊บผ๋ฒ์ ๋ค ๊ฐ์ ธ์จ๋ค๋ ๋ป!
const title='์ค์ฆ๋ฉ์ ๋ฌธ๋จ์'
const year=2023
const ์ํ๊ด='๋ฉ๊ฐ๋ฐ์ค'
const ์ข์='F5'
const ๊ฐ์='ํ์ฝ'
const ์ธ์ ='์ฃผ๋ง'
export {title,year,์ํ๊ด,์ข์,๊ฐ์,์ธ์ }
import * as ์ํ๋๋ค์ด from './movie.js'
๋์ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋๋ *
์ ๊ทธ๋๋ก ์ฐ๋๊ฒ ์๋๋ผ ๋ด๊ฐ ๊ฐ์ ธ์จ ์ด๋ฆ์ ์ฌ์ฉํด์ ์ํ๋๋ค์ด.title
์ด๋ ๊ฒ ์จ์ผํ๋ค!
๋ฐ์ดํฐ๋ฅผ ํ ํ์ผ์์ ๊ฐ์ ธ์ ๋ฐ๋ก ์ฌ์ฉํ๋ ๊ฒ ์๋๋ผ, abc.js๋ผ๋ ํ์ผ์ ๋ค ์ ์ฅํด๋๊ณ ๊ทธ๋๊ทธ๋ ํ์ํ ๋๋ง๋ค abc.js์์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ๋ ์๋ค.
์ค๊ฐ๋งค๊ฐ์ฒด ์ญํ ์ ํ๋ ํ์ผ์์ export
ํค์๋๋ง ์ ์ด์ฉํ๋ฉด ๋๋ค.
movie.js >> abc.js >> index.js ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ธด๋ค๊ณ ํด๋ณด์.
//movie.js
const title='์ค์ฆ๋ฉ์ ๋ฌธ๋จ์'
const year=2023
const ์ํ๊ด='๋ฉ๊ฐ๋ฐ์ค'
const ์ข์='F5'
const ๊ฐ์='ํ์ฝ'
const ์ธ์ ='์ฃผ๋ง'
export {title,year,์ํ๊ด,์ข์,๊ฐ์,์ธ์ }
//abc.js
export * as default from './movie.js'
import ์ํ๋๋ค์ด from './abc.js'
console.log(์ํ๋๋ค์ด.title)
//abc.js
export {title,year,์ํ๊ด,์ข์,๊ฐ์,์ธ์ } from './movie.js'
import {title,year,์ํ๊ด,์ข์,๊ฐ์,์ธ์ } from './abc.js'
console.log(title)
//abc.js
export {title,year as ๊ฐ๋ด์ฐ๋} from './movie.js'
import {title,๊ฐ๋ด์ฐ๋} from './abc.js'
console.log(๊ฐ๋ด์ฐ๋)