728x90
๋ฐ์ํ
๐ก ์ค์ต ํฌ์ธํธ!
๐ arguments vs rest parameter
- arguments ๋ parameter ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ๋์จ ์๋ ๋ฌธ๋ฒ์ด๊ณ , ์ด์ ์ ์ฌํ์ง๋ง ํจ์ฌ ๋์ ์ ๋ฌธ๋ฒ์ธ rest parameter ๋ฑ์ฅ!
- arguments ๋ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ [] ์์ ๋ฃ์ด์ฃผ๋ ๋ฐ๋ฉด, rest parameter ๋ ํ๋ผ๋ฏธํฐ ์๋ฆฌ์ ์ค๋ ํ๋ผ๋ฏธํฐ ์ค ์ผ๋ถ๋ฅผ ํน์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
๐ rest parameter vs spread operator
- Spread Operator ๋ฅผ ํ๋ผ๋ฏธํฐ์ ์ฌ์ฉํ๋ฉด rest parameter ๊ฐ ๋๋ค.
- ํจ์ ํ๋ผ๋ฏธํฐ ์๋ฆฌ์ ... ์ด ๋ถ์ผ๋ฉด rest parameter ์ด๊ณ , ๋๋จธ์ง๋ spread operator ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
๐ rest parameter
๐ค ํน์ฑ ๋ฐ ์ฃผ์์
- ํ๋ผ๋ฏธํฐ์ ๊ตณ์ด rest ๋ผ๊ณ ์ฐ์ง ์๊ณ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ง๋ค์ด๋ ๋๋ค.
- rest parameter ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ผ๋ฏธํฐ๊ฐ ๋ช ๊ฐ ๋ค์ด์ฌ์ง ๋ฏธ๋ฆฌ ์ง์ ์ ํด์ค ํ์๊ฐ ์๋ค.
- rest parameter ๋ ๊ฐ์ฅ ๋ง์ง๋ง์ ์จ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
- ๋๋ฒ ์ด์ ์ฌ์ฉํ ์ ์๋ค.
๐ค rest parameter ์์๋ณด๊ธฐ
function func(...params) {
console.log(params);
}
func(1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]
- rest parameter ๋ ํ๋ผ๋ฏธํฐ ์๋ฆฌ์ ์ค๋ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ [] ์์ ๋ฃ์ด์ค๋ค.
function func1(a, b, ...params) {
console.log(params);
}
func1(1, 2, 3, 4, 5); // [3, 4, 5]
- arguments ๋ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ [] ์์ ๋ฃ์ด์ฃผ๋ ๋ฐ๋ฉด, rest parameter ๋ ํ๋ผ๋ฏธํฐ ์๋ฆฌ์ ์ค๋ ํ๋ผ๋ฏธํฐ ์ค ์ผ๋ถ๋ฅผ ํน์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
function func2(a, b, ...params) {
console.log(params[1]);
}
func2(1, 2, 3, 4, 5); // 4
- rest parameter ๋ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ [] ์์ ๋ฃ์ด์ฃผ๋ฏ๋ก index ๋ฅผ ์ด์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
function func3(...params) {
for (let i = 0; i < params.length; i++) {
console.log(params[i]);
}
}
func3(1, 2, 3, 4, 5); // 1 2 3 4 5 ๊ฐ ์ฝ์์ฐฝ์ ํ ์ค์ฉ ์ถ๋ ฅ!
- ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ค์ ํ๋์ฉ ์ฝ์์ฐฝ์ ์ถ๋ ฅํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
728x90
๋ฐ์ํ
'[๊ฐ๋ฐ] Practice > JavaScript ES6' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript / ES6] default parameter / arguments (0) | 2022.04.22 |
---|---|
[JavaScript / ES6] Spread Operator (0) | 2022.04.21 |
[JavaScript / ES6] Template literals ์์๋ณด๊ธฐ (0) | 2022.04.12 |
[JavaScript / ES6] ๋ณ์ ์ฐ์ต๋ฌธ์ ํ๊ธฐ (0) | 2022.04.11 |
[JavaScript / ES6] ๋ณ์ ์ ๋ฌธ๋ฒ ์ด์ ๋ฆฌํ๊ธฐ_2 (0) | 2022.04.11 |