โ†ย ๋’ค๋กœ๊ฐ€๊ธฐ

1์žฅ ์ฑ•ํ„ฐ 3. ๋„ค์ดํ‹ฐ๋ธŒ

2023/02/25

๋„ค์ดํ‹ฐ๋ธŒ

  • ๋„ค์ดํ‹ฐ๋ธŒ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋‚ด์žฅํƒ€์ž…์ด ์žˆ๋‹ค.
  • String, Number๊ฐ™์€๊ฒƒ๋“ค์ด ์žˆ๋‹ค.

๋„ค์ดํ‹ฐ๋ธŒ๋Š” ์‚ฌ์‹ค ๋‚ด์žฅํ•จ์ˆ˜์ด๋‹ค.

  • ์ƒ์„ฑ์ž์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์›์‹œ๊ฐ’์„ ๊ฐ์‹ผ ๊ฐ์ฒด๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ typeof์˜ ๊ฒฐ๊ณผ๋„ object์ด๋‹ค.

๋‚ด๋ถ€ [[Class]]

  • typeof๊ฐ€ object ์ธ ๊ฒฝ์šฐ, [[Class]]๋ผ๋Š” ๋‚ด๋ถ€ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ถ”๊ฐ€๋กœ ๋ถ™๋Š”๋‹ค.
  • ๋ณดํ†ต ํ•ด๋‹น ๊ฐ’๊ณผ ๊ด€๋ จ๋œ ๋‚ด์žฅ ๋„ค์ดํ‹ฐ๋ธŒ ์ƒ์„ฑ์ž๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”๋ฐ, ๊ทธ๋ ‡์ง€ ์•Š์„๋•Œ๋„ ์žˆ๋‹ค.
  • ๋‹จ์ˆœ ์›์‹œ๊ฐ’์€ ํ•ด๋‹นํ•˜๋Š” ๊ฐ์ฒด ๋ž˜ํผ๋กœ ์ž๋™ ๋ฐ•์‹ฑ๋œ๋‹ค.

๋ž˜ํผ ๋ฐ•์‹ฑ

  • ์›์‹œ๊ฐ’์€ ์†์„ฑ ๋ฐ ๋ฉ”์„œ๋“œ๊ฐ€ ์—†๋Š”๋ฐ, JS๋Š” ์›์‹œ๊ฐ’์„ ์•Œ์•„์„œ ๋ฐ•์‹ฑํ•ด์ฃผ๋‹ค๋ณด๋‹ˆ, ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํ•„์š”์— ๋”ฐ๋ผ JS์—”์ง„์ด ์•Œ์•„์„œ ์•”์‹œ์ ์œผ๋กœ ๋ฐ•์‹ฑํ•˜๋ฏ€๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋”ฐ๋กœ ์ตœ์ ํ™”ํ•ด์ค„ ํ•„์š” ์—†๋‹ค๊ณ  ํ•œ๋‹ค.

๋ž˜ํผ ๊ฐ์ฒด ์ฃผ์˜์‚ฌํ•ญ

  • boolean๊ฐ’ ๊ฐ™์€๊ฑธ ๋ž˜ํผ๋กœ ๊ฐ์‹ธ๊ณ , ๊ทธ๊ฑธ ๊ฐ€์ง€๊ณ  ์กฐ๊ฑด๋ฌธ์—์„œ ์ฐธ ๊ฑฐ์ง“ ์—ฌ๋ถ€๋ฅผ ๋”ฐ์ง„๋‹ค๋ฉด,
    ๊ฐ’์ด ์กด์žฌํ•˜๋‹ˆ truthyํ•˜๋‹ค๊ณ  ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ๋‚ด๋ถ€ ๊ฐ’์ด false์—ฌ๋„ ๋ง์ด๋‹ค.
    ์ด๋Ÿฐ ์ƒํ™ฉ์„ ์ฃผ์˜ํ•˜์ž.
  • ๊ฐ’์„ ๊บผ๋‚ผ ๋• valueOf๋ฅผ ์‚ฌ์šฉํ•˜์ž

Wrapper๊ฐ์ฒด๋Š” ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉ ํ•  ๊ฒƒ

  • ์ •๋ง ํ•„์š”ํ•ด์„œ ์“ฐ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด, ๊ทธ๋ƒฅ ์›์‹œ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๋‚ซ๋‹ค.
    ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ Boolean๋ฌธ์ œ์ฒ˜๋Ÿผ, ๊ตณ์ด valueOf()๋ฅผ ์จ์•ผ ํ•œ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์‚ฌ์ „์— ํ”ผํ•˜๋„๋ก ํ•˜์ž.
  • Boolean๋ง๊ณ ๋„ Array๋„ ํŠน์ดํ•œ๋ฐ, ์ธ์ž๋กœ 3์„ ๋„ฃ์œผ๋ฉด ๋นˆ ์Šฌ๋กฏ ๋ฐฐ์—ด์ด ๋งŒ๋“ค์–ด์ง„๋‹ค. ๋ฏธ๋ฆฌ ๊ฐ’์ด ์ฑ„์›Œ์ง„ ๋ฐฐ์—ด์„ ์›ํ•œ๋‹ค๋ฉด, Array.apply ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ž.

Object(), Function(), RegExp()

  • Function์˜ ๊ฒฝ์šฐ ๋™์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋‚ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๋„ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด, ์“ธ ์ผ์ด ์—†๋‹ค.
  • ๋‚˜๋จธ์ง€๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๊ทธ๋ƒฅ ๋ฆฌํ„ฐ๋Ÿด๋กœ ํ‘œํ˜„ํ•˜๋Š”๊ฒŒ ํ›จ์”ฌ ๋‚˜์œผ๋‹ˆ, ๊ทธ๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜์ž.
  • Object์˜ ๊ฒฝ์šฐ, ๋ฆฌํ„ฐ๋Ÿด๋กœ ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ ์†์„ฑ์ •์˜๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ, ํ•œ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ง€์ •ํ•  ์ด์œ ๊ฐ€ ์—†๋‹ค.
  • RegExp์˜ ๊ฒฝ์šฐ, ์ฝ๊ธฐ ํŽธํ•œ๊ฑด ๋ฌผ๋ก , JS์—”์ง„์ด ์‹คํ–‰ ์ „์— ์ •๊ทœํ‘œํ˜„์‹์„ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผํ•˜๊ณ  ์บ์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์—,
    ๋”๋”์šฑ RegExp()๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ์—†๋‹ค.
  • ๋‹ค๋งŒ, Function๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋™์ ์œผ๋กœ ์ •๊ทœํ‘œํ˜„์‹์„ ๋งŒ๋“ ๋‹ค๋ฉด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค.

Date(), Error()

  • date์™€ error๋Š” ๋ฆฌํ„ฐ๋Ÿด ํ˜•์‹์ด ์—†์–ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœํ† ํƒ€์ž…

  • ๋‚ด์žฅ ๋„ค์ดํ‹ฐ๋ธŒ ์ƒ์„ฑ์ž๋Š” ๊ฐ์ž .prototype์„ ๊ฐ€์ง„๋‹ค.
  • ํ”„๋กœํ† ํƒ€์ž…์„ ํ†ตํ•ด ๊ฐ์ฒด์— ์ •์˜๋œ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ”„๋กœํ† ํƒ€์ž…์„ ๋””ํดํŠธ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

  • ํ•จ์ˆ˜์˜ ํ”„๋กœํ† ํƒ€์ž…์€ ๋นˆ ํ•จ์ˆ˜, ์ •๊ทœํ‘œํ˜„์‹, ๋ฐฐ์—ด ๋“ฑ ๋“ฑ, ๊ฐ์ž์˜ ํ”„๋กœํ† ํƒ€์ž…์€ ๊ฐ ํƒ€์ž…์˜ ๋””ํดํŠธ๊ฐ’์ด๋‹ค.
    • ์ด ์ ์„ ํ™œ์šฉํ•˜์—ฌ, ๊ฐ ํƒ€์ž…์˜ ๋””ํดํŠธ๊ฐ’์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.