const object = { a: 1, b: 2 };
const { a, b } = object;
console.log(a); // 1
console.log(b); // 2
const object = { a: 1, b: 2 };
function print({ a, b }) {
console.log(a);
console.log(b);
}
print(object);
const ironMan = {
name: 'ํ ๋ ์คํํฌ',
actor: '๋ก๋ฒํธ ๋ค์ฐ๋ ์ฃผ๋์ด',
alias: '์์ด์ธ๋งจ'
};
const captainAmerica = {
name: '์คํฐ๋ธ ๋ก์ ์ค',
actor: 'ํฌ๋ฆฌ์ค ์๋ฐ์ค',
alias: '์บกํด ์๋ฉ๋ฆฌ์นด'
};
function print(hero) {
//๊ฐ์ฒด์์ ๊ฐ๋ค์ ์ถ์ถํด์ ์๋ก์ด ์์๋ก ์ ์ธํด์ค๋ค
const { alias, name, actor } = hero;
const text = `${alias}(${name}) ์ญํ ์ ๋งก์ ๋ฐฐ์ฐ๋ ${actor} ์
๋๋ค.`;
console.log(text);
}
print(ironMan);
print(captainAmerica);
const array = [1, 2];
const [one, two] = array;
console.log(one);
console.log(two);
const array = [1];
const [one, two = 2] = array;
console.log(one);
console.log(two);
const deepObject = {
state: {
information: {
name: 'velopert',
languages: ['korean', 'english', 'chinese']
}
},
value: 5
};
const { name, languages } = deepObject.state.information;
const { value } = deepObject;
const extracted = {
name,
languages,
value
};
console.log(extracted); // {name: "velopert", languages: Array[3], value: 5}
const extracted = {
name: name,
languages: languages,
value: value
}
const deepObject = {
state: {
information: {
name: 'velopert',
languages: ['korean', 'english', 'chinese']
}
},
value: 5
};
const {
state: {
information: { name, languages }
},
value
} = deepObject;
const extracted = {
name,
languages,
value
};
console.log(extracted);
const slime = {
name: '์ฌ๋ผ์'
};
const cuteSlime = {
...slime,
attribute: 'cute'
};
const purpleCuteSlime = {
...cuteSlime,
color: 'purple'
};
const animals = ['๊ฐ', '๊ณ ์์ด', '์ฐธ์'];
const anotherAnimals = [...animals, '๋น๋๊ธฐ'];
const numbers = [1, 2, 3, 4, 5];
const spreadNumbers = [...numbers, 1000, ...numbers];
console.log(spreadNumbers); // [1, 2, 3, 4, 5, 1000, 1, 2, 3, 4, 5]
const purpleCuteSlime = {
name: '์ฌ๋ผ์',
attribute: 'cute',
color: 'purple'
};
//๋ฐฐ์ด์ ๋น๊ตฌ์กฐํ ํ ๋น์ ํตํ์ฌ ์ํ๋ ๊ฐ์ ๋ฐ์ผ๋ก ๊บผ๋ด๊ณ ๋๋จธ์ง ๊ฐ์ rest์์ ๋ฃ๋๋ค.
//color๋ฅผ ์ ์ธํ๊ณ ๋ค์ด์๋ค.
const { color, ...rest } = purpleCuteSlime;
const numbers = [0, 1, 2, 3, 4, 5, 6];
const [one, ...rest] = numbers;
function sum(...rest) {
return rest.reduce((acc, current) => acc + current, 0);
}
const numbers = [1, 2, 3, 4, 5, 6];
const result = sum(...numbers);
console.log(result);
const dog = {
name: '๋ฉ๋ฉ์ด'
};
function getName(animal) {
return animal && animal.name;
}
const name = getName(dog);
console.log(name); // ๋ฉ๋ฉ์ด
const namelessDog = {
name: ''
};
function getName(animal) {
const name = animal && animal.name || '์ด๋ฆ์ด ์๋ ๋๋ฌผ์
๋๋ค.'
}
const name = getName(namelessDog);
console.log(name); // ์ด๋ฆ์ด ์๋ ๋๋ฌผ์
๋๋ค.
์กฐ๊ฑด ? true์ผ๋ : false์ผ๋
const array = [];
let text = array.length === 0 ? '๋ฐฐ์ด์ด ๋น์ด์์ต๋๋ค' : '๋ฐฐ์ด์ด ๋น์ด์์ง ์์ต๋๋ค.';
console.log(text);
ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ผ๋ฐ ๋ฌธ์์ด๊ณผ ๋น์ทํด ๋ณด์ด์ง๋ง, โ ๋๋ โ ๊ฐ์ ํต์์ ์ธ ๋ฐ์ดํ ๋ฌธ์ ๋์ ๋ฐฑํฑ(backtick) ๋ฌธ์ `๋ฅผ ์ฌ์ฉํ๋ค.
์ผ๋ฐ์ ์ธ ๋ฌธ์์ด์์ ์ค๋ฐ๊ฟ์ ํ์ฉ๋์ง ์์ผ๋ฉฐ ๊ณต๋ฐฑ(white-space)๋ฅผ ํํํ๊ธฐ ์ํด์๋ ๋ฐฑ์ฌ๋์()๋ก ์์ํ๋ ์ด์ค์ผ์ดํ ์ํ์ค(Escape Sequence)๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํ๋ค. ES6 ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ผ๋ฐ์ ์ธ ๋ฌธ์์ด๊ณผ ๋ฌ๋ฆฌ ์ฌ๋ฌ ์ค์ ๊ฑธ์ณ ๋ฌธ์์ด์ ์์ฑํ ์ ์์ผ๋ฉฐ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋ด์ ๋ชจ๋ white-space๋ ์๋ ๊ทธ๋๋ก ์ ์ฉ๋๋ค.
ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ + ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ์๋ก์ด ๋ฌธ์์ด์ ์ฝ์ ํ ์ ์์ผ๋ฉฐ, ๋ฌธ์์ด ์ธํฐํด๋ ์ด์ (String Interpolation)์ด๋ผ ํ๋ค.
๋ฌธ์์ด ์ธํฐํด๋ ์ด์ ์ ${ โฆ }์ผ๋ก ํํ์์ ๊ฐ์ธ๋ฉฐ ๋ฌธ์์ด ์ธํฐํด๋ ์ด์ ๋ด์ ํํ์์ ๋ฌธ์์ด๋ก ๊ฐ์ ํ์ ๋ณํ๋๋ค.
Tagged Template์ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด๋ก ๊ฐ์ธ์ง ๋ด์ฉ๋ค์ ์ธ์๋ก ํ์ฌ ํจ์์ ๋์ ํ ์ ์๊ฒ ํด์ค๋ค.
Tagged Template์ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ์์ ํจ์ ์ด๋ฆ์ ํ๊ธฐํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค. expression interpolation์ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด๋ค์ด ๋ถํ ๋์ด ๋ฐฐ์ด ํํ๋ก ํจ์์ ์ฒซ๋ฒ์งธ parameter๋ก ์ ๋ฌ๋๊ณ , ๋๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ถํฐ๋ expression interpolation์ ๋ค์ด๊ฐ ๊ฐ์ด ์ ๋ฌ๋๋ค.
const first = 'Ung-mo';
const last = 'Lee';
// ES5: ๋ฌธ์์ด ์ฐ๊ฒฐ
console.log('My name is ' + first + ' ' + last + '.');
// "My name is Ung-mo Lee."
// ES6: String Interpolation
console.log(`My name is ${first} ${last}.`);
// "My name is Ung-mo Lee."
๋ฒจ๋กํผํธ์ ํจ๊ปํ๋ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ
Temaplate Literals
ํ
ํ๋ฆฟ ๋ฆฌํฐ๋ด(Template Literal)๊ณผ ์คํ์ผ๋ ์ปดํฌ๋ํธ(styled-component)