arguments๊ฐ์ฒด: ์คํ ์ปจํ ์คํธ ์์ฑ ์์ ์ ๋ง๋ค์ด์ง๋ค
arguments ๊ฐ์ฒด๋ ์คํ ์ปจํ ์คํธ ์์ฑ ์์ ์ ํจ๊ป ๋ง๋๋ ์ ๋ณด ์ค ํ๋๋ค. ์ง์ ํ ๋งค๊ฐ๋ณ์์ ๊ฐ์์ ๋ฌด๊ดํ๊ฒ ํธ์ถ ์ ์ธ์๊ฐ ๋ชจ๋ arguments ์ ๋ณด์ ๋ด๊ธด๋ค. ์ด๋ฌํ ํน์ฑ ๋์ ํจ์์ ์์จ์ฑ์ ๋์ด๋ ์ธก๋ฉด์์ ์์ฃผ ์ฌ์ฉํ๋ค. arguments๋ ์ ์ฌ๋ฐฐ์ด ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ฒ๋ผ ํ์ฉํ๊ธฐ ์ํด์ ๋ณ๋์ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค. ๋ ํจ์ ๋ด๋ถ์์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ ๋ฐ๊พธ๋ฉด arguments์ ๊ฐ๋ ๋ฐ๋๋๋ฐ, ์ด๋ ์ ๋ฌ๋ ์ธ์๋ฅผ ๋ชจ๋ ์ ์ฅํ ๋ฐ์ดํฐ๋ผ๋ ๋ณธ๋์ ๊ฐ๋ ๊ณผ ๋ฌ๋ผ์ง๊ฒ ๋๋ค. ์ด ๋๋ฌธ์ ES6์์๋ ๋๋จธ์ง ํ๋ผ๋ฏธํฐ(rest parameter aka ...)๊ฐ ๋ฑ์ฅํ์ฌ argumetns๋ฅผ ๋์ฒดํ๊ณ ์๋ค.
1. ์ธ์ ๊ฐ์์ ๋ฌด๊ดํ๊ฒ, ์ ์ฐํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
function add() {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return console.log(sum);
}
add(100, 200, 300); // 600
add(10, 20, 30, 40); // 100
arguments๊ฐ์ฒด๋ฅผ ์์ฉํ๋ฉด ๋งค๊ฐ๋ณ์๋ฅผ ์ ํด๋์ง ์์๋, ์ ์ฐํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
2. ํจ์ ํธ์ถ ์, arguments ๊ฐ์ฒด๊ฐ ์๋ฌต์ ์ผ๋ก ์ ๋ฌ๋๋ค.
function argu() {
console.dir(arguments);
}
argu();
argu(1, 2);
์คํ๊ฒฐ๊ณผ
- arguments ๊ฐ์ฒด๋ ์ ์ฌ๋ฐฐ์ด๊ฐ์ฒด๋ค.
1) ์ ์ฌ๋ฐฐ์ด๊ฐ์ฒด๋, ๋ฐฐ์ด๊ณผ ๋น์ทํ๊ฒ ๊ฐ์ด ์๊ธด ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.
2) arguments ๊ฐ์ฒด๋ key๊ฐ 0,1,2...์ธ ์ซ์, length๊ฐ ์์์ ๊ฐ์๋ฅผ ๊ฐ๊ณ ์๋ค.
3) key๊ฐ 0,1,2๋ก ์์ํ๊ธฐ ๋๋ฌธ์ arguments[0]๋ก๋ value๋ฅผ ์ ๊ทผํ ์ ์์ด, ๋ฐฐ์ด๊ณผ ๋น์ทํ๋ค๊ณ ๋ถ๋ฆฐ๋ค.
3. ์ธ์์ ๊ฐ์๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ, ์ด๊ณผํ ๊ฒฝ์ฐ
function print(arg1, arg2) {
console.log(arg1, arg2)
}
add() // undefined undefined
add(1) // 1 undefined
add(1,2) // 1 2
add(1,2,3) // 1 2
- argument๋ฅผ ๋ถ์กฑํ๊ฒ ํธ์ถํ ๊ฒฝ์ฐ, undefined๋ฅผ ์ถ๋ ฅํ๋ค.
- argument๋ฅผ ์ด๊ณผํด์ ํธ์ถํ ๊ฒฝ์ฐ, ๋ฌด์ํ๋ค.
'๐ Front > ๐ฑ Vanilla JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํฌ๋ฆฝํธ(script) ์ถ๊ฐ/์ ๊ฑฐํ๋ ๋ฒํผ ๋ง๋ค๊ธฐ (0) | 2021.11.22 |
---|---|
[Iterable VS Enumerable] ๊น๋ํ๊ฒ ์ ๋ฆฌํ๊ณ ๊ฐ์๋ค (0) | 2021.11.19 |
[addEventListener] ์ฝ๋ฐฑํจ์์๊ฒ ์ธ์๋ฅผ ์ฃผ๋ ๋ฐฉ๋ฒ (0) | 2021.11.17 |
key์ ์ ๊ทผํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ. obj.key, obj['key'] (0) | 2021.08.03 |
Window ๊ฐ์ฒด (0) | 2021.02.23 |