๐Ÿ“– ES6 ํ•จ์ˆ˜์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

c_yjยท2022๋…„ 7์›” 1์ผ
0

DeepDive

๋ชฉ๋ก ๋ณด๊ธฐ
23/42
post-thumbnail

โœ”๏ธ ํ•จ์ˆ˜์˜ ๊ตฌ๋ถ„

ES6 ์ด์ „์˜ ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰ ES6 ์ด์ „์˜ ๋ชจ๋“  ํ•จ์ˆ˜๋Š” ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๋ฌผ๋ก  ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

ES6 ํ•จ์ˆ˜์˜ ๊ตฌ๋ถ„constructorprototypesuperarguments
์ผ๋ฐ˜ ํ•จ์ˆ˜(Normal)OOXO
๋ฉ”์„œ๋“œ(Method)XXOO
ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Normal)XXXX

์ผ๋ฐ˜ ํ•จ์ˆ˜๋Š” constructor์ด์ง€๋งŒ ES6์˜ ๋ฉ”์„œ๋“œ์™€ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” non-constructor๋‹ค

โœ”๏ธ ๋ฉ”์„œ๋“œ

ES6 ์ด์ „ ์‚ฌ์–‘์—์„œ ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด์— ๋ฐ”์ธ๋”ฉ๋œ ํ•จ์ˆ˜๋ฅผ ์ผ์ปซ๋Š” ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. ES6 ์‚ฌ์–‘์—์„œ ๋ฉ”์„œ๋“œ๋Š” ๋ฉ”์„œ๋“œ ์ถ•์•ฝ ํ‘œํ˜„์œผ๋กœ ์ •์˜๋œ ํ•จ์ˆ˜๋งŒ์„ ์˜๋ฏธํ•œ๋‹ค.

ES6 ์‚ฌ์–‘์—์„œ ์ •์˜ํ•œ ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋Š” non-constructor๋‹ค. ๋”ฐ๋ผ์„œ ES6 ๋ฉ”์„œ๋“œ๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค.

ES6 ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ prototype ํ”„๋กœํผํ‹ฐ๊ฐ€ ์—†๊ณ  ํ”„๋กœํ† ํƒ€์ž…๋„ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํ‘œ์ค€ ๋นŒ๋“œ์ธ ๊ฐ์ฒด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ์™€ ์ •์  ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋‘ non-constructor๋‹ค.

ES6 ๋ฉ”์„œ๋“œ๋Š” ์ž์‹ ์„ ๋ฐ˜์ธ๋”ฉํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋‚ด๋ถ€ ์Šฌ๋กฏ [[HomeObject]]์„ ๊ฐ–๋Š”๋‹ค. supr ์ฐธ์กฐ๋Š” ๋‚ด๋ธŒ ์Šฌ๋กฏ [[HomeObject]]์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํผํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ฐธ์กฐํ•˜๋ฏ€๋กœ ๋‚ด๋ถ€ ์Šฌ๋กฏ [[HomeObject]]๋ฅผ ๊ฐ–๋Š” ES6 ๋ฉ”์„œ๋“œ๋Š” super ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ES6 ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜๋Š” super ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ๋‚ด๋ถ€ ์Šฌ๋กฏ [[HomeObject]]๋ฅผ ๊ฐ–์ง€ ์•Š๊ธฐ ๋–„๋ฌธ์ด๋‹ค.

โœ”๏ธ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ๊ธฐ์กด์˜ ํ•จ์ˆ˜ ์ •์˜ ๋ฐฉ์‹๋ณด๋‹ค ๊ฐ„๋žตํ•˜๊ฒŒ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ‘œํ˜„๋งŒ ๊ฐ„๋žตํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด๋ถ€ ๋™์ž‘๋„ ๊ธฐ์กด์˜ ํ•จ์ˆ˜๋ณด๋‹ค ๊ฐ„๋žตํ•œ๋‹ค. ํŠนํžˆ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ฝœ๋ฐฑ ๋‚ด๋ถ€์—์„œ this๊ฐ€ ์ „์—ญ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์•ˆ์œผ๋กœ ์œ ์šฉ

โœ๏ธ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ์ •์˜

ํ•จ์ˆ˜ ์ •์˜

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์—†๊ณ  ํ•จ์ˆ˜ ํ‘œํ˜„์‹์œผ๋กœ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค

const multiply = (x,y) => x+y;
multiply(2,3) // 6

๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ ์–ธ

๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ์†Œ๊ด„ํ˜ธ () ์•ˆ์— ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค.

const multiply = (x,y) => {...};

ํ•จ์ˆ˜ ๋ชธ์ฒด ์ •์˜

ํ•จ์ˆ˜ ๋ชธ์ฒด๊ฐ€ ํ•˜๋‚˜์˜ ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค๋ฉด ํ•จ์ˆ˜ ๋ชธ์ฒด๋ฅผ ๊ฐ์‹ธ๋Š” ์ค‘๊ด„ํ˜ธ {}๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.

const power = X => x ** 2;
power(2); // 4

โœ๏ธ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์™€ ์ผ๋ฐ˜ ํ•จ์ˆ˜์˜ ์ฐจ์ด

1. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋Š” non-constructor๋‹ค.

  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ prototype ํ”„๋กœํผํ‹ฐ๊ณ  ์—†๊ณ  ํ”„๋กœํ† ํƒ€์ž…๋„ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.

2. ์ค‘๋ณต๋œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์„ ์–ธํ•  ์ˆ˜ ์—†๋‹ค.

  • ์ผ๋ฐ˜ ํ•จ์ˆ˜๋Š” ์ค‘๋ณต๋œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์„ ์–ธํ•ด๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ, strict mode์—์„œ ์ค‘๋ณต๋œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์„ ์–ธํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ
  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์—์„œ๋„ ์ค‘๋ณต๋œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์„ ์–ธํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ

3. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์ž์ฒด์˜ this, arguments, super, new.target ๋ฐ”์ธ๋”ฉ์„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค.

  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ this, arguments, super, new.target์„ ์ฐธ์กฐํ•˜๋ฉด ์Šค์ฝ”ํ”„ ์ฒด์ธ์„ ํ†ตํ•ด ์ƒ์œ„ ์Šค์ฝ”ํ”„์˜ this, arguments, super, new.target์„ ์ฐธ์กฐํ•œ๋‹ค
  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์™€ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๊ฐ€ ์ค‘์ฒฉ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ƒ์œ„ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์—๋„ this, arguments, super, new.target ๋ฐ”์ธ๋”ฉ์ด ์—†์œผ๋ฏ€๋กœ ์Šค์ฝ”ํ”„ ์ฒด์ธ ์ƒ์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ƒ์œ„ ํ•จ์ˆ˜ ์ค‘์—์„œ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜์˜ this, arguments, super, new.target์„ ์ฐธ์กฐํ•œ๋‹ค.

โœ๏ธ this

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๊ฐ€ ์ผ๋ฐ˜ ํ•จ์ˆ˜์™€ ๊ตฌ๋ณ„๋˜๋Š” ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ๋ฐ”๋กœ this๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์œ์ˆ˜๋กœ ์ „๋‹ฌ๋˜์–ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

ES6์—์„œ๋Š” ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "์ฝœ๋ฐฑ ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ this ๋ฌธ์ œ"๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

class Prefixer {
  constructor(prefix) {
      this.prefix = prefix;
  }
  add(arr) {
      return arr.map(item => this.prefix + item);
  }
}

const prefixer = new Prefixer('-webkit-');
console.log(prefixer.add(['transition', 'user-select'])));

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์ž์ฒด์˜ this ๋ฐ”์ธ๋”ฉ์„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ this๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ์ƒ์œ„์Šค์ฝ”ํ”„์˜ this๋ฅผ ๊ทธ๋Œ€๋กœ ์ฐธ์กฐํ•œ๋‹ค. ์ด๋ฅผ lexical this๋ผ ํ•œ๋‹ค.

โœ๏ธ super

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์ž์ฒด์˜ super ๋ฐ”์ธ๋”ฉ์„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ super๋ฅผ ์ฐธ์กฐํ•˜๋ฉด this์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒ์œ„ ์Šค์ฝ”ํ”„์˜ super๋ฅผ ์ฐธ์กฐํ•จ.

class Base{
  constructor(name) {
    this.name = name;
  }
  
  sayHi() {
    return `Hi! ${this.name}`;
  }
}

class Derived extends Base {
  // ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ super๋Š” ์ƒ์œ„ ์Šค์ฝ”ํ”„์ธ constructor์˜ super๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  sayHi = () => `${super.sayHi()} how are you doing?`;
}

const derived = new Derived('Lee');
console.log(derived.sayHi()); // Hi! Lee how are you doing?

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์ž์ฒด์˜ super ๋ฐ”์ธ๋”ฉ์„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค.
this์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒ์œ„ ์Šค์ฝ”ํ”„์˜ super๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

โœ๏ธ arguments

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์ž์ฒด์˜ arguments ๋ฐ”์ธ๋”ฉ์„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ arguments๋ฅผ ์ฐธ์กฐํ•˜๋ฉด this์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ฌ์šฐ์ด ์Šค์ฝ”ํ”„์˜ arguments๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ๊ฐ€๋ณ€ ์ธ์ž ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ Rest ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

โœ”๏ธ Rest ํŒŒ๋ผ๋ฏธํ„ฐ

โœ๏ธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

Rest ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„ ์•ž์— ์„ธ๊ฐœ์˜ ์  ...์„ ๋ถ™์—ฌ์„œ ์ •์˜ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. Rest ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ํ•จ์ˆ˜์— ์ „๋‹ฌ๋œ ์ธ์ˆ˜๋“ค์˜ ๋ชฉ๋ก์„ ๋ฐฐ์—ด๋กœ ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค.

function foo(...rest) {
  // ๋งค๊ฐœ๋ณ€์ˆ˜ rest๋Š” ์ธ์ˆ˜๋“ค์˜ ๋ชฉ๋ก์„ ๋ฐฐ์—ด๋กœ ์ „๋‹ฌ๋ฐ›๋Š” Rest ํŒŒ๋ผ๋ฏธํ„ฐ๋‹ค.
  console.log(rest); // [1,2,3,4,5]
}

foo(1,2,3,4,5)

Rest ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๋จผ์ € ์„ ์–ธ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜์— ํ• ๋‹น๋œ ์ธ์ˆ˜๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ธ์ˆ˜๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋ฐฐ์—ด์ด ํ• ๋‹น๋œ๋‹ค. ๋”ฐ๋ผ์„œ Rest ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ฐ˜๋“œ์‹œ ๋งˆ์ง€๋ง‰ ํŒŒ๋ผ๋ฏธํ„ฐ์ด์–ด์•ผ ํ•œ๋‹ค.

โœ๏ธ Rest ํŒŒ๋ผ๋ฏธํ„ฐ์™€ arguments ๊ฐ์ฒด

ES6์—์„œ๋Š” rest ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋ณ€ ์ธ์ž ํ•จ์ˆ˜์˜ ์ธ์ˆ˜ ๋ชฉ๋ก์„ ๋ฐฐ์—ด๋กœ ์ง์ ‘ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด์ธ arguments ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ๊ฐ€๋ณ€ ์ธ์ž ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๋–„๋Š” ๋ฐ˜๋“œ์‹œ Rest ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

โœ”๏ธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ธฐ๋ณธ๊ฐ’

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋–„ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๋งŒํผ ์ž‡์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์—”์ง„์ด ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ์ธ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฒดํฌํ•˜์ง€ ์•Š๊ธฐ ๋–„๋ฌธ์ด๋‹ค.

ES6์—์„œ ๋„์ž…๋œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ˆ˜ํ–‰ํ•˜๋˜ ์ธ์ˆ˜ ์ฒดํฌ ๋ฐ ์ดˆ๊ธฐํ™”๋ฅผ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

function sum(x = 0, y = 0) {
  return x + y;
}
console.log(sum(1,2)); // 3
console.log(sum(1)); // 1

์ด๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์™€ undefined์„ ์ „๋‹ฌํ•œ ๊ฒฝ์šฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜ ๊ธฐ๋ณธ๊ฐ’์€ ํ•จ์ˆ˜ ์ •์˜ ์‹œ ์„ ์–ธํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜ ๊ฐ์ฒด์˜ length ํ”„๋กœํผํ‹ฐ์™€ arguments ๊ฐ์ฒด์— ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

profile
FrontEnd Developer

0๊ฐœ์˜ ๋Œ“๊ธ€