SEB FE / Section1 / Unit9 / JavaScript ํต์ฌ ๊ฐ๋ ๊ณผ ์ฃผ์ ๋ฌธ๋ฒ
๐ Today I Learned
- ES6
์ฃผ๋ก ๋ฐฐ์ด์ ํ์ด์ ์ธ์๋ก ์ ๋ฌํ๊ฑฐ๋, ๋ฐฐ์ด์ ํ์ด์ ๊ฐ๊ฐ์ ์์๋ก ๋ฃ์ ๋์ ์ฌ์ฉํ๋ค.
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
sum(...numbers) // ์ง๋ฌธ: ์ด๋ค ๊ฐ์ ๋ฆฌํดํ๋๊ฐ?
ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐฐ์ด์ ํํ๋ก ๋ฐ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๋ผ๋ฏธํฐ ๊ฐ์๊ฐ ๊ฐ๋ณ์ ์ผ ๋ ์ ์ฉํฉ๋๋ค.
function sum(...theArgs) {
return theArgs.reduce((previous, current) => {
return previous + current;
});
}
sum(1,2,3) // ์ง๋ฌธ: ์ด๋ค ๊ฐ์ ๋ฆฌํดํ๋๊ฐ?
sum(1,2,3,4) // ์ง๋ฌธ: ์ด๋ค ๊ฐ์ ๋ฆฌํดํ๋๊ฐ?
๋จ์์๋ ๋ชจ๋ ์ธ์๋ฅผ ํ๋์ ๋ฐฐ์ด์ ๋ด๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ ๋ถ๋ฅธ๋ค.
function printMaxNums(...args) {
console.log(args)
}
์คํ์ด ๋๋ฉด rest parameter args๋ ๋ชจ๋ ๋จ์์๋ ์ธ์๋ฅผ ํ ๋น๋ฐ๋๋ค. ๋ฐ๋ก ๋งค๊ฐ๋ณ์๋ฅผ ๋นผ๋์ง ์์์ผ๋ฏ๋ก args๋ ๋ฐฐ์ด์ ํํ๋ก ๋ชจ๋ ์ธ์๋ฅผ ํ ๋น ๋ฐ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ต์ [10, 30, 40], A์ด๋ค
function printMaxNums(num1, ...args) {
console.log(args) // [30, 40]
}
๋ฐ๋ก ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ์๋ค๋ฉด, ๋จ์ ๋งค๊ฐ๋ณ์๋ง ๋ฐฐ์ด์ ํํ๋ก rest parameter args์ ํ ๋นํ๋ค.
const [a, b, ...rest] = [10, 20, 30, 40, 50];
// ์ง๋ฌธ: a, b, rest๋ ๊ฐ๊ฐ ์ด๋ค ๊ฐ์ธ๊ฐ?
const {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}
// ์ง๋ฌธ: a, b, rest๋ ๊ฐ๊ฐ ์ด๋ค ๊ฐ์ธ๊ฐ?
๊ฐ์ฒด์์ ๊ตฌ์กฐ ๋ถํด ํ ๋น์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ ์ธ(const, let, var)๊ณผ ํจ๊ป ์ฌ์ฉํ์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค.
function whois({displayName: displayName, fullName: {firstName: name}}){
console.log(displayName + " is " + name);
}
let user = {
id: 42,
displayName: "jdoe",
fullName: {
firstName: "John",
lastName: "Doe"
}
};
whois(user) // ์ง๋ฌธ: ์ฝ์์์ ์ด๋ป๊ฒ ์ถ๋ ฅ๋ ๊น?