This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

parseInt()

Baseline Widely available

This feature is well established and works across many devices and browser versions. Itโ€™s been available across browsers since โจ2015๋…„ 7์›”โฉ.

parseInt() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด ์ธ์ž๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ํŠน์ • ์ง„์ˆ˜(์ˆ˜์˜ ์ง„๋ฒ• ์ฒด๊ณ„์—์„œ ๊ธฐ์ค€์ด ๋˜๋Š” ๊ฐ’)์˜ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์‹œ๋„ํ•ด ๋ณด๊ธฐ

console.log(parseInt("123"));
// 123 (default base-10)
console.log(parseInt("123", 10));
// 123 (explicitly specify base-10)
console.log(parseInt("   123 "));
// 123 (whitespace is ignored)
console.log(parseInt("077"));
// 77 (leading zeros are ignored)
console.log(parseInt("1.9"));
// 1 (decimal part is truncated)
console.log(parseInt("ff", 16));
// 255 (lower-case hexadecimal)
console.log(parseInt("0xFF", 16));
// 255 (upper-case hexadecimal with "0x" prefix)
console.log(parseInt("xyz"));
// NaN (input can't be converted to an integer)

๊ตฌ๋ฌธ

js
parseInt(string);
parseInt(string, radix);

๋งค๊ฐœ๋ณ€์ˆ˜

string

ํŒŒ์‹ฑํ•  ๊ฐ’์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์ด ์•„๋‹ ๊ฒฝ์šฐ ToString ์ถ”์ƒ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์˜ ์„ ํ–‰ ๊ณต๋ฐฑ์€ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

radix Optional

string์˜ ์ง„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 2๋ถ€ํ„ฐ 36๊นŒ์ง€์˜ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค. ์ฃผ์˜ํ•˜์„ธ์š”. ๊ธฐ๋ณธ ๊ฐ’์ด 10์ด ์•„๋‹™๋‹ˆ๋‹ค! Number ์ž๋ฃŒํ˜•์ด ์•„๋‹Œ ๊ฒฝ์šฐ Number๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ  : radix๋ฅผ ์ƒ๋žตํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ์ผ์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜ ์„ค๋ช…์—์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’

์ฃผ์–ด์ง„ string์—์„œ ํŒŒ์‹ฑํ•œ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” NaN์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • radix๊ฐ€ 2๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ 36๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ.
  • ๊ณต๋ฐฑ์ด ์•„๋‹Œ ์ฒซ ๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ.

์„ค๋ช…

parseInt ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๊ทธ ๊ฐ’์„ ํŒŒ์‹ฑํ•˜์—ฌ ์ •์ˆ˜๋‚˜ NaN์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

NaN์„ ๋ฐ˜ํ™˜ํ•  ๊ฒƒ์ด ์•„๋‹ˆ๋ฉด, parseInt๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋ฅผ ์ง€์ •ํ•œ radix ์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•œ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด radix๊ฐ€ 10์ธ ๊ฒฝ์šฐ 10์ง„์ˆ˜, 8์ธ ๊ฒฝ์šฐ๋Š” 8์ง„์ˆ˜, 16์ธ ๊ฒฝ์šฐ 16์ง„์ˆ˜ ๋“ฑ๋“ฑ์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

radix๊ฐ€ 10์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ, ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ์ด 9๋ณด๋‹ค ํฐ ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฆ‰, 16์ง„์ˆ˜์—์„œ๋Š” A๋ถ€ํ„ฐ F๊นŒ์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ parseInt ํ•จ์ˆ˜๊ฐ€ ์ง€์ •ํ•œ radix์—์„œ์˜ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋ฅผ ๋งˆ์ฃผ์น˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฌธ์ž ์ด์ „๊นŒ์ง€์˜ ๋ฌธ์ž๋งŒ ์‚ฌ์šฉํ•ด ํŒŒ์‹ฑํ•˜๋ฉฐ ๋ฌธ์ œ์˜ ๋ฌธ์ž์™€ ๊ทธ ์ดํ›„๋Š” ๋ชจ๋‘ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. parseInt๋Š” ์ •์ˆ˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์†Œ์ˆ˜์  ์ดํ•˜ ๊ฐ’์„ ์ž˜๋ผ๋ƒ…๋‹ˆ๋‹ค. ์„ ํ–‰ ๋ฐ ํ›„ํ–‰ ๊ณต๋ฐฑ์€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ์ˆซ์ž๋Š” 6.022e23(6.022 ร— 10^23)์ฒ˜๋Ÿผ ๋ฌธ์ž์—ด ํ‘œํ˜„์— e ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, parseInt๋ฅผ ๋งค์šฐ ํฌ๊ฑฐ๋‚˜๋งค์šฐ ์ž‘์€ ์ˆซ์ž์˜ ์†Œ์ˆ˜์  ์ดํ•˜ ๊ฐ’์„ ์ž๋ฅด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋ฉด ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. parseInt๋ฅผ Math.floor()์˜ ๋Œ€์ฒดํ’ˆ์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

parseInt๋Š” ์–‘์˜ ๋ถ€ํ˜ธ +์™€ ์Œ์˜ ๋ถ€ํ˜ธ -๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ๋ถ€ํ˜ธ ์ธ์‹์€ ์„ ํ›„ํ–‰ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•œ ํ›„ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋กœ์„œ ์ˆ˜ํ–‰๋˜๋ฉฐ, ๋ถ€ํ˜ธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค. ๋ถ€ํ˜ธ๋ฅผ ์ฐพ์€ ๊ฒฝ์šฐ ๋ถ€ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ์ˆซ์ž ํŒŒ์‹ฑ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ง„์ˆ˜ ์ธ์ž๋กœ ์ง€์ •ํ•œ ๊ฐ’์€ (ํ•„์š”ํ•œ ๊ฒฝ์šฐ) ์ˆซ์ž๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋ณ€ํ™˜ ํ›„์˜ ๊ฐ’์ด 0, NaN, Infinity ์ค‘ ํ•˜๋‚˜(undefined๋Š” NaN์œผ๋กœ ๋ณ€ํ™˜)๋ผ๋ฉด JavaScript๋Š” ๋‹ค์Œ์„ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ž…๋ ฅ ๊ฐ’์ด "0x" ๋˜๋Š” "0X"(0๊ณผ ๋Œ€/์†Œ๋ฌธ์ž X)๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ radix๋ฅผ 16์œผ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ๋‚˜๋จธ์ง€ ๋ฌธ์ž์—ด์„ 16์ง„์ˆ˜๋กœ ํŒŒ์‹ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ์ž…๋ ฅ ๊ฐ’์ด ๊ทธ ์™ธ์˜ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉด radix๋Š” 10(10์ง„์ˆ˜)์ž…๋‹ˆ๋‹ค.

์ด์™ธ์— ์ง„์ˆ˜ ๊ฐ’์ด [2, 36]์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒฝ์šฐ parseInt๊ฐ€ NaN์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

NaN ๊ฐ’์€ ๋ชจ๋“  ์ง„์ˆ˜์—์„œ ์ˆซ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. parseInt์˜ ๊ฒฐ๊ณผ๊ฐ€ NaN์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด isNaN์„ ์‚ฌ์šฉํ•˜์„ธ์š”. NaN์„ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์— ์‚ฌ์šฉํ•˜๋ฉด ์—ฐ์‚ฐ ๊ฒฐ๊ณผ ์—ญ์‹œ NaN์ด ๋ฉ๋‹ˆ๋‹ค.

์ˆซ์ž๋ฅผ ํŠน์ • ์ง„์ˆ˜์˜ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด number.toString(radix)๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

๊ฒฝ๊ณ  : parseInt๋Š” BigInt ๊ตฌ๋ฌธ์„ Number๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์ •ํ™•๋„๋ฅผ ์žƒ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ n ๋ฌธ์ž๋ฅผ ๋ฌด์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ง„์ˆ˜ ์—†๋Š” 8์ง„์ˆ˜ ํ•ด์„

2021๋…„์„ ๊ธฐ์ค€์œผ๋กœ, ๋‹ค์Œ ๋‚ด์šฉ์€ ์ตœ๊ทผ ๊ตฌํ˜„์ฒด์— ํ•ด๋‹นํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ์˜ํ•˜์„ธ์š”.

ECMAScript 3๋ถ€ํ„ฐ ์ด๋ฏธ ๊ถŒ์žฅ๋˜์ง€ ์•Š์•˜์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๋งŽ์€ ECMAScript 3 ๊ตฌํ˜„์ฒด๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์žํ˜• ๋ฌธ์ž์—ด์„ 8์ง„์ˆ˜๋กœ ํ•ด์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฝ”๋“œ๋Š” 8์ง„์ˆ˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜๋„ ์žˆ๊ณ , 10์ง„์ˆ˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

js
parseInt("0e0"); // 0
parseInt("08"); // 0, '8'์€ 8์ง„์ˆ˜ ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ

ECMAScript 5 ๋ช…์„ธ๋Š” parseInt ๊ตฌํ˜„์ด 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด์„ 8์ง„์ˆ˜๋กœ ํ•ด์„ํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. 2021๋…„ ์‹œ์ ์—์„  ๋งŽ์€ ๊ตฌํ˜„์ฒด๊ฐ€ ์ด ๋™์ž‘์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

js
parseInt("0e0"); // 0
parseInt("08"); // 8

๋” ์—„๊ฒฉํ•œ ํŒŒ์‹ฑ ํ•จ์ˆ˜

๊ฐ„ํ˜น ์ •์ˆ˜๋ฅผ ํŒŒ์‹ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋” ์—„๊ฒฉํ•œ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๊ทœํ‘œํ˜„์‹์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

js
function filterInt(value) {
  if (/^[-+]?(\d+|Infinity)$/.test(value)) {
    return Number(value);
  } else {
    return NaN;
  }
}

console.log(filterInt("421")); // 421
console.log(filterInt("-421")); // -421
console.log(filterInt("+421")); // 421
console.log(filterInt("Infinity")); // Infinity
console.log(filterInt("421e+0")); // NaN
console.log(filterInt("421hop")); // NaN
console.log(filterInt("hop1.61803398875")); // NaN
console.log(filterInt("1.61803398875")); // NaN

์˜ˆ์ œ

parseInt ์‚ฌ์šฉํ•˜๊ธฐ

๋‹ค์Œ์€ ๋ชจ๋‘ 15๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

js
parseInt("0xF", 16);
parseInt("F", 16);
parseInt("17", 8);
parseInt("015", 10); // parseInt('015', 8)์ด์—ˆ๋‹ค๋ฉด 13์„ ๋ฐ˜ํ™˜
parseInt(15.99, 10);
parseInt("15,123", 10);
parseInt("FXX123", 16);
parseInt("1111", 2);
parseInt("15 * 3", 10);
parseInt("15e2", 10);
parseInt("15px", 10);
parseInt("12", 13);

๋‹ค์Œ์€ ๋ชจ๋‘ NaN์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

js
parseInt("Hello", 8); // ์ˆซ์ž๊ฐ€ ์ „ํ˜€ ์•„๋‹˜
parseInt("546", 2); // 0๊ณผ 1์„ ์ œ์™ธํ•œ ์ˆซ์ž๋Š” 2์ง„๋ฒ•์—์„œ ์œ ํšจํ•˜์ง€ ์•Š์Œ

๋‹ค์Œ์€ ๋ชจ๋‘ -15๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

js
parseInt("-F", 16);
parseInt("-0F", 16);
parseInt("-0XF", 16);
parseInt(-15.1, 10);
parseInt("-17", 8);
parseInt("-15", 10);
parseInt("-1111", 2);
parseInt("-15e1", 10);
parseInt("-12", 13);

๋‹ค์Œ์€ ๋ชจ๋‘ 4๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

js
parseInt(4.7, 10);
parseInt(4.7 * 1e22, 10); // ๋งค์šฐ ํฐ ์ˆซ์ž๊ฐ€ 4๊ฐ€ ๋จ
parseInt(0.00000000000434, 10); // ๋งค์šฐ ์ž‘์€ ์ˆซ์ž๊ฐ€ 4๊ฐ€ ๋จ

์ˆซ์ž๊ฐ€ 1e+21์„ ์ดˆ๊ณผํ•˜๊ฑฐ๋‚˜ 1e-7 ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ 10์ง„์ˆ˜์—์„œ 1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

js
parseInt(0.0000001, 10);
parseInt(0.000000123, 10);
parseInt(1e-7, 10);
parseInt(1000000000000000000000, 10);
parseInt(123000000000000000000000, 10);
parseInt(1e21, 10);

๋‹ค์Œ์€ 224๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

js
parseInt("0e0", 16);

BigInt ๊ฐ’์€ ์ •ํ™•๋„๋ฅผ ์žƒ์Šต๋‹ˆ๋‹ค.

js
parseInt("900719925474099267n");
// 900719925474099300

parseInt๋Š” ์ˆซ์ž ๊ตฌ๋ถ„ ๊ธฐํ˜ธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

js
parseInt("123_456");
// 123

์ง„์ˆ˜๋Š” Number๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

js
const obj = {
  valueOf() {
    return 8;
  },
};
parseInt("11", obj); // 9

obj.valueOf = function () {
  return 1;
};
parseInt("11", obj); // NaN

obj.valueOf = function () {
  return Infinity;
};
parseInt("11", obj); // 11

๋ช…์„ธ

Specification
ECMAScriptยฎ 2026 Languageย Specification
# sec-parseint-string-radix

๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ

๊ฐ™์ด ๋ณด๊ธฐ