๐ก ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํ๊ณ ๋ฌธ์ ๋ฅผ ํ ๋ ๋ง์๊ฐ์ง
1. ํญ์ ์ฌ๋ฌ๊ฐ์ง ํ์ด ๋ฐฉ๋ฒ์ด ์์ ์ ์๋ค.
2. ํญ์ ์์ธ๊ฐ ์์ ์ ์๋ค
3. ๋ด๊ฐ ์ด๋ฏธ ํผ ๋ต์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ํญ์ ๊ณ ๋ฏผํด์ผ ํ๋ค.
4. ํ์ง ๋ชปํ๋ ์ฝ๋ ๋ํ ๋จ๊ฒจ๋๋ ๊ฒ์ด ์ข๋ค.
5. ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ๋ง์ด ๋ด์ผ, ๋์ ์๊ฐ์์ ๋ฒ์ด๋ ์๋ก์ด ์ฌ๊ณ ๋ฅผ ํ ์ ์๋ค.
6. ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํฌ๊ธฐํ์ง ๋ง๊ณ , ๋์ ํ ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด ๋ต์ ๋ณด๊ณ ์๊ฐ์ด ์ง๋ ํ ๋ค์ ํ์ด๋ณด๋ ๊ฒ์ด ์ข๋ค.
7. ์๊ณ ๋ฆฌ์ฆ ๋ง์คํฐ๊ฐ ๋ ํ์๋ ์์ง๋ง, ์ต์ํด์ ธ์ผ ํ๋ค.
- ํ์ฌ๋ ์ ๋ฌด๋ฅผ ์ํ ํ ์ ์๋ ๊ธฐ์ด ๋ฅ๋ ฅ์ ํ์ธํ๊ณ ์ถ์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅด๋ ๊ฒ์ด ์ข๋ค.
- ์์ธ์ ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ด ์ค์ํ ํ์ฌ(๊ฒ์, ์ธ๊ณต์ง๋ฅ ๋ฑ์ ๋ถ์ผ)์ธ ๊ฒฝ์ฐ์๋ ์ค์ํ๊ธฐ ๋๋ฌธ์ ์๊ณ ๋ฆฌ์ฆ/์๋ฃ๊ตฌ์กฐ์ ๋ํด ๋ง์ด ๊ณต๋ถํ๋ ๊ฒ์ด ์ข๋ค.
8. ๋ณ์๋ ํจ์์ ์ด๋ฆ์ ์ ์ ํด์ผํ๋ฉฐ ์ค๋ณต ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ค.
9. ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ(๊ตฌ์กฐ๋ถํด ํ ๋น, spread ์ฐ์ฐ์ ๋ฑ)์ ์ ํ์ฉํ๋ค.
10. ์ฝ๋์ ์ผ๊ด์ฑ์ ์ ์งํ๋ค.
์๋ฃ๊ตฌ์กฐ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ฉฐ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ก, ์ํฉ์ ๋ฐ๋ผ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์๋๋ก ํน์ ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๊ณ ์์ต๋๋ค. ์๋ฃ ๊ตฌ์กฐ์๋ ์คํ, ํ, ๊ทธ๋ํ, ํธ๋ฆฌ ๋ฑ์ด ์์ต๋๋ค.
์๊ณ ๋ฆฌ์ฆ์ ํน์ ๋ฌธ์ ๋ฅผ ํจ์จ์ ์ด๊ณ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ๋ ๊ฒ์ด ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ก ์ ํด์ง ์ผ๋ จ์ ์ ์ฐจ๋ ๋ฐฉ๋ฒ์ ๊ณต์ํํ ํํ๋ก ํํํ ๊ฒ์ ๋งํฉ๋๋ค. ์ฆ, ์ํ์ ์ผ๋ก ํํํ ์ ์์ผ๋ฉฐ ์๋ฃ๊ตฌ์กฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ํฉ์ ๋ฐ๋ผ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด์งํ์, ์ต๋จ๊ฑฐ๋ฆฌํ์ ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํฉ๋๋ค.
์ค๋ฌด์์ ์ค์ํ๊ฒ ์๊ฐํ๋ ์์๋ ๊ธฐ์ด ์ฝ๋ฉ ๋ฅ๋ ฅ, ์ ๋ฌธ ๋ถ์ผ ์ง์, ๊ธฐ๋ณธ CS ์ง์์ด ์์ต๋๋ค. ์ด ์ธ๊ฐ์ง ์ค ๊ธฐ์ด ์ฝ๋ฉ ๋ฅ๋ ฅ์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํด์ ๋ฅ๋ ฅ์ ํค์ธ ์ ์์ต๋๋ค. ์ฆ, ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ํค์ธ ์ ์๊ฒ ๋ฉ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๋ ผ๋ฆฌ์ ์ฌ๊ณ , ์ ์ฐํ ๋ฅ๋ ฅ, ์ฃ์ง ์ผ์ด์ค ํ์ ๋ฅ๋ ฅ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ฆ, ๋๊ฐ ๋ด๋ ์ดํดํ ์ ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๊ณ ํ ์ ์์ผ๋ฉฐ ๊ทธ ์ฌ๊ณ ๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ธ์ด๋ก ์ ์ฐํ ํ ์ ์์ด์ผ ํ๋ฉฐ, ๊ทธ ์ค์์๋ ์๊ธฐ์น ๋ชปํ ์์ธ ์ผ์ด์ค๋ค์ ์ ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์๋ฃ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ณํ์ง ์๊ธฐ ๋๋ฌธ์ ์์๋๋ฉด ๋๊ณ ๋๊ณ ์ฌ์ฉํ์ค ์ ์์ผ๋ ๊ณต๋ถํด๋์๋ ๊ฒ์ด ์ข์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ 9๊ฐ์ง ์ฝ๋ ํธ๋ฆญ
๊ตฌ์กฐ ๋ถํด ํ ๋น์ ์ด์ฉํ ๋ณ์ swap
ES6์ ๊ตฌ์กฐ ๋ถํด ํ ๋น ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ ๋ณ์๋ฅผ swap ํ ์ ์์ต๋๋ค.
let a = 5, b = 10;
[a, b] = [b, a];
console.log(a, b); *// 10 5*
๋ฐฐ์ด ์์ฑ์ผ๋ก ๋ฃจํ ์ ๊ฑฐํ๊ธฐ
๋ณดํต ๋จ์ํ ๋ฒ์ ๋ฃจํ๋ฅผ ๋๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
let sum = 0;
for (let i = 5; i < 10; i += 1) {
sum += i;
}
๋ง์ฝ ๋ฒ์ ๋ฃจํ๋ฅผ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ๋ฐฐ์ด์ ์์ฑํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
const sum = Array
.from(new Array(5), (_, k) => k + 5)
.reduce((acc, cur) => acc + cur, 0);
๋ฐฐ์ด ๋ด ๊ฐ์ ์์ ์ ๊ฑฐํ๊ธฐ
Set
์ ์ด์ฉํ ์ ์์ต๋๋ค.
const names = ['Lee', 'Kim', 'Park', 'Lee', 'Kim'];
const uniqueNamesWithArrayFrom = Array.from(new Set(names));
const uniqueNamesWithSpread = [...new Set(names)];
Spread ์ฐ์ฐ์๋ฅผ ์ด์ฉํ ๊ฐ์ฒด ๋ณํฉ
๋ ๊ฐ์ฒด๋ฅผ ๋ณ๋ ๋ณ์์ ํฉ์ณ์ค ์ ์์ต๋๋ค.
const person = {
name: 'Lee Sun-Hyoup',
familyName: 'Lee',
givenName: 'Sun-Hyoup'
};
const company = {
name: 'Cobalt. Inc.',
address: 'Seoul'
};
const leeSunHyoup = { ...person, ...company };
console.log(leeSunHyoup);
*// {
// address: “Seoul”
// familyName: “Lee”
// givenName: “Sun-Hyoup”
// name: "Cobalt. Inc."
// ๊ฐ์ ํค๋ ๋ง์ง๋ง์ ๋์
๋ ๊ฐ์ผ๋ก ์ ํด์ง๋ค.
// }*
&&์ || ํ์ฉ
&&์ ||๋ ์กฐ๊ฑด๋ฌธ ์ธ์์๋ ํ์ฉ๋ ์ ์์ต๋๋ค.
*/// ||
// ๊ธฐ๋ณธ๊ฐ์ ๋ฃ์ด์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
// participantName์ด 0, undefined, ๋น ๋ฌธ์์ด, null์ผ ๊ฒฝ์ฐ 'Guest'๋ก ํ ๋น๋ฉ๋๋ค.*
const name = participantName || 'Guest';
*/// &&
// flag๊ฐ true์ผ ๊ฒฝ์ฐ์๋ง ์คํ๋ฉ๋๋ค.*
flag && func();
*// ๊ฐ์ฒด ๋ณํฉ์๋ ์ด์ฉํ ์ ์์ต๋๋ค.*
const makeCompany = (showAddress) => {
return {
name: 'Cobalt. Inc.',
...showAddress && { address: 'Seoul' }
}
};
console.log(makeCompany(false));
*// { name: 'Cobalt. Inc.' }*console.log(makeCompany(true));
*// { name: 'Cobalt. Inc.', address: 'Seoul' }*
๊ตฌ์กฐ ๋ถํด ํ ๋น ์ฌ์ฉํ๊ธฐ
๊ฐ์ฒด์์ ํ์ํ ๊ฒ๋ง ๊บผ๋ด ์ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
const person = {
name: 'Lee Sun-Hyoup',
familyName: 'Lee',
givenName: 'Sun-Hyoup'
company: 'Cobalt. Inc.',
address: 'Seoul',
}
const { familyName, givenName } = person;
๊ฐ์ฒด ์์ฑ์ ํค ์๋ตํ๊ธฐ
๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํ๋กํผํฐ ํค๋ฅผ ๋ณ์ ์ด๋ฆ์ผ๋ก ์๋ตํ ์ ์์ต๋๋ค.
const name = 'Lee Sun-Hyoup';
const company = 'Cobalt';
const person = {
name,
company
}
console.log(person);
*// {
// name: 'Lee Sun-Hyoup'
// company: 'Cobalt',
// }*
๋น๊ตฌ์กฐํ ํ ๋น ์ฌ์ฉํ๊ธฐ
ํจ์์ ๊ฐ์ฒด๋ฅผ ๋๊ธธ ๊ฒฝ์ฐ ํ์ํ ๊ฒ๋ง ๊บผ๋ด ์ธ ์ ์์ต๋๋ค.
const makeCompany = ({ name, address, serviceName }) => {
return {
name,
address,
serviceName
}
};
const cobalt = makeCompany({ name: 'Cobalt. Inc.', address: 'Seoul', serviceName: 'Present' });
๋์ ์์ฑ ์ด๋ฆ
ES6์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก ๊ฐ์ฒด์ ํค๋ฅผ ๋์ ์ผ๋ก ์์ฑ ํ ์ ์์ต๋๋ค.
const nameKey = 'name';
const emailKey = 'email';
const person = {
[nameKey]: 'Lee Sun-Hyoup',
[emailKey]: 'kciter@naver.com'
};
console.log(person);
*// {
// name: 'Lee Sun-Hyoup',
// email: 'kciter@naver.com'
// }*
!! ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ Boolean ๊ฐ์ผ๋ก ๋ฐ๊พธ๊ธฐ
!! ์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ 0, null, ๋น ๋ฌธ์์ด, undefined, NaN
์ false
๋ก ๊ทธ ์ธ์๋ true
๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
function check(variable) {
if (!!variable) {
console.log(variable);
} else {
console.log('์๋ชป๋ ๊ฐ');
}
}
check(null); *// ์๋ชป๋ ๊ฐ*
check(3.14); *// 3.14*
check(undefined); *// ์๋ชป๋ ๊ฐ*
check(0); *// ์๋ชป๋ ๊ฐ*
check('Good'); *// Good*
check(''); *// ์๋ชป๋ ๊ฐ*
check(NaN); *// ์๋ชป๋ ๊ฐ*
check(5); *// 5*
'DataScience > Data Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ณ ๋ฆฌ์ฆ - ์ ๋ ฌ (0) | 2022.12.19 |
---|---|
์๊ณ ๋ฆฌ์ฆ - ์ด์งํ์ (0) | 2022.12.19 |
์๊ณ ๋ฆฌ์ฆ - ์๊ฐ๋ณต์ก๋ (0) | 2022.12.19 |
์๋ฃ๊ตฌ์กฐ - ๋น์ ํ ์๋ฃ๊ตฌ์กฐ (0) | 2022.12.15 |
์๋ฃ ๊ตฌ์กฐ์ ์ข ๋ฅ - ๋จ์ ๊ตฌ์กฐ์ ์ ํ ๊ตฌ์กฐ (1) | 2022.12.09 |