ES6์์๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋๋ฐ ์์ด์ ๋ถํ์ํ ๋ฐ๋ณต์ ์์ด๋ค. key, value ํ์์ผ๋ก object์ ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ๋ค๋ฉด, shorthand๋ฐฉ์์ผ๋ก๋ ๊ฐ๋ฅํด์ก๋ค. ํจ์์์๋ ๋ฐํํ๋ ํ์์์ ๋ฟ๋ง ์๋๋ผ ๊ฐ์ฒด ๊ทธ ์์ฒด๋ฅผ ์ ์ํ๋๋ฐ์๋ ์ฌ์ฉํ ์ ์๋ค. ๋ฌผ๋ก , ๊ฐ์ฒด์ ํ๋กํผํฐ ๋ช ๊ณผ ์ง์ญ๋ณ์์ ๋ช ์ด ๊ฐ์์ผ ํ๋ค.
let name = "gildong";
let age = 17;
let person ={
// name: name, //๋ง์ฝ ์ด๋ ๊ฒ ํค์ ํค๊ฐ์ด ๊ฐ๋ค๋ฉด ์๋์ ๊ฐ์ด ์ธ ์ ์๋ค.
name,
age
}
console.log(person);
Destructuring(๊ฐ์ฒด ๊ตฌ์กฐํ)์ ๋ฐฐ์ด, ๊ฐ์ฒด ๋ฐ ๋งต์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ ์๋กญ๊ณ ๊ณ ์ ํ ๋ณ์๋ฅผ ์ค์ ํ ์ ์๋ Javascript ํํ์์ด๋ค. Destructuring์ ์ฌ์ฉํ๋ฉด ํ ๋ฒ์ ๋ฐฐ์ด์์ ์ฌ๋ฌ ์์ฑ ๋๋ ํญ๋ชฉ์ ์ถ์ถํ ์ ์๋ค.
let person ={
name:"gildong",
age : 20
}
let {name, age} =person
console.log(name, age); // ๊ฒฐ๊ณผ ๊ฐ : gildong 20
let array = [1, 2, 3, 4];
let [a, b,...rest]= array; //...rest๋ ์ง์ ํด์ค a, b๋ฅผ ์ ์ธํ ๋๋จธ์ง๊ฐ์ ์ง์ ํด ์ค ๊ฒ์ด๋ค.
console.log(rest); // ๊ฒฐ๊ณผ ๊ฐ : [3, 4]
Javascript ์คํ๋ ๋ ์ฐ์ฐ์(...)๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์ ์ฒด ๋๋ ์ผ๋ถ๋ฅผ ๋ค๋ฅธ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด๋ก ๋น ๋ฅด๊ฒ ๋ณต์ฌํ ์ ์๋ค.
let person ={
name:"gildong",
age : 12
};
let person2 = {...person}; //...person์ด๋ผ๊ณ ์ง์ ํด์ฃผ๋ฉด person2๋ผ๋ ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ณ person๊ฐ์ด ๋ค์ด๊ฐ๋ค.
console.log(person2); // ๊ฒฐ๊ณผ ๊ฐ : gildong 12
let a =[1, 2]
let b =[...a, 3];
console.log(b); // ๊ฒฐ๊ณผ ๊ฐ : [1, 2, 3]
let c = [...a, ...b];
console.log(c); // ๊ฒฐ๊ณผ ๊ฐ : [1, 2, 1, 2, 3]
โ ๊ทธ๋ผ ์ฌ๊ธฐ์ ์ฐจ์ด๋ฅผ ์์๋ณด์
let person2 = {...person};
let person3 = person;
console.log(person2); // ๊ฒฐ๊ณผ ๊ฐ : gildong 12
console.log(person3); // ๊ฒฐ๊ณผ ๊ฐ : gildong 12
์ ๋ ์ฝ๋์ ๊ฒฐ๊ณผ ๊ฐ์ด ๊ฐ์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ณด์ด์ง๋ง ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ์ด ๋ค๋ฅธ ๊ฒ์ด๋ค.
...์ ๋ถ์ด์ง ์๋ ์ฝ๋๋ person์ ์ฃผ์๊ฐ ๋ง ๋ณต์ฌํ๋ค. ์ฆ, ์๋ก์ด ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ ๊ฒ์ด ์๋๊ณ ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋๋ณ์๊ฐ ๋๊ฐ์ธ ์
์ด๋ค.
๋ฐ๋ฉด ...์ ๋ฃ์ผ๋ฉด ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํด ๋ด์ฉ์ ๊ฐ์ง๋ง ๊ฐ์ฒด๊ฐ ํ๋ ๋ ์์ฑ๋ ๊ฒ์ด๋ค.
console.log(person==person2); // ๊ฒฐ๊ณผ ๊ฐ : false
console.log(person==person3); // ๊ฒฐ๊ณผ ๊ฐ : ture
์ฆ ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๊ฒ์ด๋ค.
์ผํญ์ฐ์ฐ์๋ Javascript์์ ์ธ ๊ฐ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฐ๋ ์ ์ผํ ์ฐ์ฐ์์ด๋ค. ์์์ ๋ถํฐ ์กฐ๊ฑด๋ฌธ, ๋ฌผ์ํ(?), ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๊ฒฝ์ฐ ์คํํ ํํ์, ์ฝ๋ก (:), ์กฐ๊ฑด๋ฌธ ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ ์คํํ ํํ์์ด ๋ฐฐ์น๋๋ค. ํด๋น ์ฐ์ฐ์๋ if/else ๋ฌธ์ ๋์ฒด์ฌ๋ก ๋น๋ฒํ ์ฌ์ฉ๋๋ค.
let person ={
name:"gildong",
age : 17
};
// ๊ธฐ์กด๋ฐฉ์์ ์ด๋ ๊ฒ ์ผ๋ค๋ฉด
if(person){
console.log(person.name);
} else {
console.log("there is no person");
}
// ์ผํญ์ฐ์ฐ์ ๋ฐฉ์์
console.log(person? person.name : "there is no person");