๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[๊ฐœ๋ฐœ] Practice/JavaScript ES6

[JavaScript / ES6] default parameter / arguments

by Connecting-the-dots 2022. 4. 22.
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ก ์‹ค์Šต ํฌ์ธํŠธ!

๐Ÿ’œ default parameter

๐Ÿค ๊ธฐ๋ณธ ํ•จ์ˆ˜ ์Šคํƒ€์ผ

function add(a, b) {
    console.log(a + b);
}

add(1, 2); // 3

๐Ÿค JavaScript ํ•จ์ˆ˜์˜ ํŠน์„ฑ

function add1(a, b) {
    console.log(a);
}

add1(1); // 1
  • ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ 2๊ฐœ์—ฌ๋„ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์‚ฌ์šฉํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ a ํ•˜๋‚˜๋ผ๋ฉด, ์‹ค์ œ๋กœ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ ํ•˜๋‚˜๋งŒ ๋„ฃ์–ด๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

๐Ÿค default parameter ์•Œ์•„๋ณด๊ธฐ

function add2(a, b = 10) {
    console.log(a + b);
}

add2(); // NaN
add2(1); // 11
add2(1, 2); // 3
  • ํŒŒ๋ผ๋ฏธํ„ฐ์— ๊ฐ’์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์„ default parameter ๋ผ๊ณ  ํ•˜๋ฉฐ ๋“ฑํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

function add3(a, b = 2 * 5) {
    console.log(a + b);
}

add3(1); // 11
  • default parameter ์—๋Š” ์ˆซ์ž ์™ธ์— ์ˆ˜ํ•™ ์—ฐ์‚ฐ์ž๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

function add4(a, b = 5 * a) {
    console.log(a + b);
}

add4(1); // 6
  • default parameter ์—๋Š” ์ˆซ์ž ์™ธ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์žฌํ™œ์šฉํ•˜์—ฌ ์—ฐ์‚ฐ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

function tempfunc() {
    return 20;
}

function add5(a, b = tempfunc()) {
    console.log(a + b);
}

add5(1); // 21
  • default parameter ์—๋Š” ํ•จ์ˆ˜ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ’œ arguments

๐Ÿค arguments ์•Œ์•„๋ณด๊ธฐ

function func(a, b, c) {
    console.log(arguments);
}

func(1, 2, 3); // Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]
  • ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๋‹ค๋ฃจ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ arguments ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

function func1(a, b, c) {
    console.log(arguments[0], arguments[1], arguments[2]);
}

func1(1, 2, 3); // 1 2 3
  • arguments ๋Š” ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ array ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

function func2(a, b, c) {
    for (let i = 0; i < arguments.length; i++) {
        console.log(arguments[i]);
    }
}

func2(1, 2, 3); // 1 2 3 ์ด ์ฝ˜์†”์ฐฝ์— ํ•œ ์ค„์”ฉ ์ถœ๋ ฅ!
  • ์ž…๋ ฅํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์†์‰ฝ๊ฒŒ ์ฝ˜์†”์ฐฝ์— ๊ฐ๊ฐ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•