๐ก ES2015์์ ์๋ก ์ถ๊ฐ๋ syntax
๐ก ๋ณํฉ, ๊ตฌ์กฐ ๋ถ๋ฐฐ ํ ๋น(destructing) ๋ฑ์ ๋ค์ํ๊ฒ ํ์ฉํ ์ ์๋ค.
spreadโ ํฉ๋ฟ๋ฆฐ๋คโ
personalData, publicData 2๊ฐ์ object๊ฐ ์๊ณ ์ด ๋๊ฐ๋ฅผ ํฉ์ณ์ user๋ฅผ ๋ง๋ค๋, ๋ object๋ฅผ ๊ฐ๊ฐ ํผํธ๋ ค์ ํ ์ค๋ธ์ ํธ ์์ ํฉ์ณ์ฃผ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
ํฉ๋ฟ๋ ค์ ์ด ์์ ๋ค์ด๊ฐ๊ฒ ํ๋คโโ
const personalData = {
nickname: 'SH',
email: 'sh@email.com',
}
const publicData = {
age: 22,
}
const user = {
...personalData,
...publicData,
}
โ ๊ธฐ์กด์ ์๋ ๊ฐ ๋ฎ์ด์ฐ๊ธฐ๋ ๊ฐ๋ฅ โ
const overrides = {
DATABASE_HOST: 'myhost.com',
DATABASE_PASSWORD: 'mypassword',
}
const config = {
DATABASE_HOST: 'default.host.com',
DATABASE_PASSWORD: '****',
DATABASE_USERNAME: 'myuser',
...overrides,
}
overrides ์์น ์ฃผ์โ ์์ ์ฃผ์โ
destructing์์๋ ํ์ฉ ๊ฐ๋ฅโ
nickname์ ์ ์ธํ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
const user = {
nickname: 'SH',
age: 22,
email: 'sh@email.com',
}
const { nickname, ...personalData } = user
console.log(personalData) // { age: 22, email: 'sh@email.com' }
๋ฐฐ์ด์๋ ์ฌ์ฉ ๊ฐ๋ฅโ
ํ๋์ array๋ก ๋ณํฉ
const pets = ['dog', 'cat']
const predators = ['wolf', 'cougar']
const animals = [...pets, ...predators]
๋จ์ ์์๋ค ๋ฌถ์ด์ ๊ฐ์ ธ์ค๊ธฐ โ
const pets = [head, ...rest] = [1, 2, 3]
console.log(head) // 1
console.log(rest) // [2, 3]
const shouldOverride = true
const user = {
...{
email: 'sh@email.com',
password: '****',
},
...{
nickname: 'SH',
},
...(shouldOverride
? {
email: 'abc@email.com', // shouldOverride๊ฐ ture์ผ ๋๋ง ๋ฎ์ด์์
}
: null),
}
console.log(user)
function fun(head, ...rest) {
console.log(head)
console.log(rest)
}
fun(1, 2, 3, 4)
๊ฒฐ๊ณผ
1
[ 2, 3, 4 ]