๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Language/JavaScript

[JavaScript] parseInt( ) vs Number( )

 

Javascript์—์„œ parseInt( )์™€ Number( )์˜ ์ฐจ์ด๋ฅผ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

parseInt( )

 

  • ๋ฌธ์ž์—ด์„ ํŒŒ์‹ฑํ•ด์„œ ํŠน์ • ์ง„์ˆ˜์˜ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” string, ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” radix ์ž…๋‹ˆ๋‹ค.
  • ๋ฌธ์ž์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž ๋ถ€๋ถ„์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์†Œ์ˆ˜์ ๊ณผ ์ˆซ์ž ์ดํ›„์˜ ๋ฌธ์ž์—ด์€ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
  • radix๊ฐ€ 2~36 ๋ฒ”์œ„์˜ ๊ฐ’์ด ์•„๋‹ˆ๊ฑฐ๋‚˜, ๊ณต๋ฐฑ์ด ์•„๋‹Œ ์ฒซ ๋ฌธ์ž๋ฅผ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ NaN์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
parseInt("123");         // 123 (๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜)
parseInt("123.45");      // 123 (์†Œ์ˆ˜์  ์ดํ•˜ ์ˆซ์ž๋Š” ๋ฌด์‹œ)
parseInt("123abc");      // 123 (์ˆซ์ž ์ดํ›„์˜ ๋ฌธ์ž๋Š” ๋ฌด์‹œ)
parseInt("  123  ");     // 123 (๋ฌธ์ž์—ด ์•ž๋’ค ๊ณต๋ฐฑ์€ ๋ฌด์‹œ)

parseInt("abc123");      // NaN (์ˆซ์ž๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์œผ๋ฉด NaN)
parseInt(undefined);     // NaN (undefined๋Š” ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅ)
parseInt(null);          // NaN (null์€ ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅ)
parseInt("");            // NaN (๋นˆ ๋ฌธ์ž์—ด์€ ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅ)
parseInt("  ");          // NaN (๊ณต๋ฐฑ ๋ฌธ์ž์—ด์€ ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅ)

 

Number( )

 

  • ๋ชจ๋“  ํƒ€์ž…์„ number๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. 
  • Number()๋Š” Date ๊ฐ์ฒด๋Š” number๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • boolean true๋Š” 1, false๋Š” 0์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • undefined๋Š” NaN, null์€ 0์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์†Œ์ˆ˜์ ์„ ํฌํ•จํ•˜์—ฌ ์ˆซ์žํ˜• ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
let d = new Date("December 17, 1995 03:24:00");
console.log(Number(d)); // 819138240000

Number(true);        // 1 (true๋Š” 1๋กœ ๋ณ€ํ™˜)
Number(false);       // 0 (false๋Š” 0์œผ๋กœ ๋ณ€ํ™˜)

Number("123");       // 123 (๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜)
Number("123.45");    // 123.45 (์†Œ์ˆ˜์  ํฌํ•จํ•˜์—ฌ ๋ณ€ํ™˜)

Number("123abc");    // NaN (์ˆซ์ž๋กœ ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ)
Number("abc");       // NaN (์ˆซ์ž๋กœ ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ)
Number(undefined);   // NaN (undefined๋Š” ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅ)
Number(null);        // 0 (null์€ 0์œผ๋กœ ๋ณ€ํ™˜)
Number("");          // 0 (๋นˆ ๋ฌธ์ž์—ด์€ 0์œผ๋กœ ๋ณ€ํ™˜)
Number("  ");        // 0 (๊ณต๋ฐฑ ๋ฌธ์ž์—ด์€ 0์œผ๋กœ ๋ณ€ํ™˜)

 

 

์ •๋ฆฌ

  • parseInt(), Number() ๋‘˜๋‹ค ์ˆซ์ž ๋ฌธ์ž์—ด์„ number๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • parseInt()
    • ๋ฌธ์ž์—ด๋งŒ ๋ณ€ํ™˜ํ•˜๊ณ , ์ง„๋ฒ•์„ ์ง€์ •ํ•˜๋Š” ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์†Œ์ˆ˜์ ์„ ๋ฌด์‹œํ•˜๊ณ  ์ •์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • ๋นˆ ๋ฌธ์ž์—ด, ๊ณต๋ฐฑ ๋ฌธ์ž์—ด, null์€ ๋ชจ๋‘ NaN์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • Number()
    • ๋ฌธ์ž์—ด๊ณผ boolean, Date๋„ number๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • ์†Œ์ˆ˜์ ๊นŒ์ง€ ์‚ด๋ฆฝ๋‹ˆ๋‹ค.
    • ๋นˆ ๋ฌธ์ž์—ด, ๊ณต๋ฐฑ ๋ฌธ์ž์—ด, null์€ 0์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ œ ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์œผ๋กœ๋Š”...

    1) ์†Œ์ˆ˜์ ์„ ์‚ด๋ ค์„œ ๋ณ€ํ™˜ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ Number()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    2) ์ž…๋ ฅ๊ฐ’์ด ๋นˆ ๋ฌธ์ž์—ด / ๊ณต๋ฐฑ ๋ฌธ์ž์—ด / null ์ด ๋  ์ˆ˜๋„ ์žˆ๋Š” ๊ฒฝ์šฐ,
      - ๋‹จ์ˆœํžˆ 0์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด Number()๊ฐ€ ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.
      - ๋ฐ˜๋ฉด, ์ž˜๋ชป๋œ ์ž…๋ ฅ์„ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด NaN์œผ๋กœ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด parseInt()๊ฐ€ ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ฐธ๊ณ 

MDN - parseInt

MDN - Number

 

'Language > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JavaScript] JavaScript์˜ ์ผ๊ธ‰๊ฐ์ฒด๋ž€?  (0) 2024.07.05
[JavaScript] for...in ๊ณผ for...of์˜ ์ฐจ์ด  (0) 2024.06.28