Coercion

Coercive Type Conversion

๊ฐ•์ œ๋ณ€ํ™˜์ด ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ธ์ง€, ์–ธ์–ด ์„ค๊ณ„์ƒ ๊ฒฐํ•จ์ธ์ง€๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‚˜์™”์„ ๋•Œ๋ถ€ํ„ฐ ๋…ผ๋ž€ ๊ฑฐ๋ฆฌ์˜€๋‹ค.

๊ฐ’ ๋ณ€ํ™˜

์–ด๋–ค ๊ฐ’์„ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์ด ๋ช…์‹œ์ ์ด๋ฉด 'ํƒ€์ž… ์บ์ŠคํŒ…', ์•”์‹œ์ ์ด๋ฉด '๊ฐ•์ œ๋ณ€ํ™˜'

์ถ”์ƒ ์—ฐ์‚ฐ

์–ด๋–ป๊ฒŒ ๊ฐ’์ด ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ ๋“ฑ์˜ ํƒ€์ž…์ด ๋˜๋Š”์ง€ ๊ทธ ๊ธฐ๋ณธ ๊ทœ์น™์„ ์•Œ์•„๋ณด์ž

ToString

  • ์›์‹œ๊ฐ’์€ ์˜ˆ์ƒ๋Œ€๋กœ ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๋€Œ๊ณ  ๋„ˆ๋ฌด ์ž‘๊ฑฐ๋‚˜ ํฐ ์ˆซ์ž๋Š” ์ง€์ˆ˜ํ˜•ํƒœ๋กœ ๋ฐ”๋€๋‹ค

  • ์ผ๋ฐ˜ ๊ฐ์ฒด๋Š” ํŠน๋ณ„ํžˆ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ToString() ๋ฉ”์„œ๋“œ๊ฐ€ ๋‚ด๋ถ€ [[Class]]๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค

  • ๋ฐฐ์—ด์€ ๋ฌธ์ž์—ด ๋ณ€ํ™˜ ์‹œ ๋ชจ๋“  ์›์†Œ ๊ฐ’์ด ๊ฐ๊ฐ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๋€ ๋’ค ์ฝค๋งˆ๋กœ ๋ถ„๋ฆฌ๋œ ํ˜•ํƒœ๋กœ ์ด์–ด์ง„๋‹ค.

    var a = [1, 2, 3];
    a.toString(); // "1, 2, 3"

ToNumber

  • ์ˆซ์ž ์•„๋‹Œ ๊ฐ’ -> ์ˆ˜์‹ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•œ ์ˆซ์ž ๋ณ€ํ™˜ ๋กœ์ง์€ ToNumber ์ถ”์ƒ ์—ฐ์‚ฐ์— ์ž˜ ์ •์˜๋˜์–ด ์žˆ๋‹ค

  • true๋Š” 1, false๋Š” 0, undefined๋Š” NaN, null์€ 0์œผ๋กœ ๋ฐ”๋€œ

Falsy ๊ฐ’

  • true/false๊ฐ€ ์•„๋‹Œ ๊ฐ’์„ ๋ถˆ๋ฆฌ์–ธ์— ์ƒ๋‹นํ•œ ๊ฐ’์œผ๋กœ ๊ฐ•์ œ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ

    1. ๋ถˆ๋ฆฌ์–ธ์œผ๋กœ ๊ฐ•์ œ๋ณ€ํ™˜ํ•˜๋ฉด false๊ฐ€ ๋˜๋Š” ๊ฐ’

      • undefined

      • null

      • false

      • +0, -0, NaN

      • ""

    2. 1๋ฒˆ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€

Last updated

Was this helpful?