๐ก ๋์คํธ๋ญ์ฒ๋ง ํ ๋น(๊ตฌ์กฐ ๋ถํด ํ ๋น) ์ ๊ตฌ์กฐํ๋ ๋ฐฐ์ด๊ณผ ๊ฐ์ ์ดํฐ๋ฌ๋ธ ๋๋ ๊ฐ์ฒด๋ฅผ destructuring(๋น๊ตฌ์กฐํ, ๊ตฌ์กฐ ํ๊ดด)ํ์ฌ 1๊ฐ ์ด์์ ๋ณ์์ ๊ฐ๋ณ์ ์ผ๋ก ํ ๋นํ๋ ๊ฒ์ ๋งํ๋ค.
๐น ๋ฐฐ์ด๊ณผ ๊ฐ์ ์ดํฐ๋ฌ๋ธ ๋๋ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์์ ํ์ํ ๊ฐ๋ง ์ถ์ถํ์ฌ ๋ณ์์ ํ ๋นํ ๋ ์ ์ฉํ๋ค.
01. ๋ฐฐ์ด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น
๐ก ES6์ ๋ฐฐ์ด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น์ ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ๋ฐฐ์ด๋ก๋ถํฐ ์ถ์ถํ์ฌ, 1๊ฐ ์ด์์ ๋ณ์์ ํ ๋น
๐น ๋ฐฐ์ด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น์ ๋์์ ์ดํฐ๋ฌ๋ธ์ด์ด์ผ ํ๊ณ , ํ ๋น ๊ธฐ์ค์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ค.
// ES5
var arr = [1, 2, 3]
var one = arr[0]
var two = arr[1]
var three = arr[2]
// ES6
const [one, two, three] = arr
// ๊ธฐ๋ณธ๊ฐ
const [a, b, c = 3] = [1, 2]
console.log(a, b, c) // 1 2 3
// ๊ธฐ๋ณธ๊ฐ๋ณด๋ค ํ ๋น๋ ๊ฐ์ด ์ฐ์
const [e, f=10, g=3] = [1, 2]
console.log(e, f, g) // 1, 2, 3
02. ๊ฐ์ฒด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น
๐ก ES5์์ ๊ฐ์ฒด์ ๊ฐ ํ๋กํผํฐ๋ฅผ ๊ฐ์ฒด๋ก๋ถํฐ ๋์คํธ๋ญ์ฒ๋งํ์ฌ ๋ณ์์ ํ ๋นํ๊ธฐ ์ํด์๋ ํ๋กํผํฐ ํค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
// ES5
var user = { firstName: 'Ungmo', lastName: 'Lee' };
var firstName = user.firstName;
var lastName = user.lastName;
console.log(firstName, lastName); // Ungmo Lee
๐ก ES6์ ๊ฐ์ฒด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น์ ๊ฐ์ฒด์ ๊ฐ ํ๋กํผํฐ๋ฅผ ๊ฐ์ฒด๋ก๋ถํฐ ์ถ์ถํ์ฌ 1๊ฐ ์ด์์ ๋ณ์์ ํ ๋นํ๋ค.
๐น ๊ฐ์ฒด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น์ ๋์์ ๊ฐ์ฒด์ด์ด์ผ ํ๋ฉฐ, ํ ๋น ๊ธฐ์ค์ ํ๋กํผํฐ ํค๋ค.
const user = { firstName: 'Ungmo', lastName: 'Lee' };
// ES6 ๊ฐ์ฒด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น
// ๋ณ์ lastName, firstName์ ์ ์ธํ๊ณ user ๊ฐ์ฒด๋ฅผ ๋์คํธ๋ญ์ฒ๋งํ์ฌ ํ ๋นํ๋ค.
// ์ด๋ ํ๋กํผํฐ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์คํธ๋ญ์ฒ๋ง ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ค. ์์๋ ์๋ฏธ๊ฐ ์๋ค.
const { lastName, firstName } = user;
console.log(firstName, lastName}; // Ungmo Lee
// ๊ธฐ๋ณธ๊ฐ ์ค์
const { firstName = 'Ungmo', lastName } = { lastName: 'Lee' };
const { firstName = fn = 'Ungmo', lastName: ln } = { lastName: 'Lee' };
console.log(fn, ln); // Ungmo Lee
๐น ๊ฐ์ฒด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น์ ๊ฐ์ฒด์์ ํ๋กํผํฐ ํค๋ก ํ์ํ ํ๋กํผํฐ ๊ฐ๋ง ์ถ์ถํ์ฌ ๋ณ์์ ํ ๋นํ๊ณ ์ถ์ ๋ ์ ์ฉ.
const str = 'Hello';
// String ๋ํผ ๊ฐ์ฒด๋ก๋ถํฐ length ํ๋กํผํฐ๋ง ์ถ์ถํ๋ค.
const { length } = str;
console.log(length); // 5
const todo = { id: 1, content: 'HTML', conpleted: true };
// todo ๊ฐ์ฒด๋ก๋ถํฐ id ํ๋กํผํฐ๋ง ์ถ์ถํ๋ค.
const { id } = todo;
console.log(id); // 1
๐ ์ฐธ๊ณ ์๋ฃ