JavaScript метод Number.parseInt()

Определение и применение

JavaScript метод parseInt() принимает в качестве аргумента строковое значение и возвращает целое число, которое соответствует указанному основанию системы счисления.

Проверьте поведение в редактируемом примере.

Поддержка браузерами

Спецификация: ecma262

Поддерживается во всех основных браузерах с 2015 года.

Показать браузеры
Совместимостьjavascript.builtins.Number.parseInt
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
parseInt✓34✓12✓25✓21✓9✓34✓25✓21✓9✓2.0✓37✓9

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
// возвращает целое число, которое соответствует десятичной или шестнадцатеричной системе счисления (определяется автоматически)
Number.parseInt( string );

// возвращает целое число, которое соответствует указанному основанию системы счисления
Number.parseInt( string, radix );

Спецификация

ECMAScript: Number.parseInt()

Значения параметров

Number: справочные сведения
Параметр Описание
string Значение сначала преобразуется в строку. Начальные пробельные символы и знак пропускаются, затем читаются цифры выбранного основания до первого неподходящего символа. Если ни одной цифры нет, возвращается NaN. Результат для null, undefined и логических значений зависит от основания: например, Number.parseInt(null, 36) возвращает число, поскольку буквы входят в алфавит основания 36.
radix Целое число от 2 до 36, указывающее основание числа в математических системах счисления. Если этот аргумент не указан, строки с префиксом "0x" или "0X" считаются шестнадцатеричными, все остальные строки считаются десятичными. Необязательный параметр.
Начальный ноль не включает восьмеричную систему: Number.parseInt("010") возвращает 10. Префиксы 0b и 0o автоматически не распознаются. Во избежание ошибок рекомендуется явно указывать систему счисления (параметр radix).

Возвращаемое значение и особенности

Возвращает Number либо NaN, а не BigInt. Аргумент сначала преобразуется в строку; начальные пробелы и знак допустимы. Основание преобразуется в 32-битное целое; 0 или отсутствие аргумента включает распознавание 0x, иначе диапазон 2–36. Неподходящее основание даёт NaN. Длинные целые могут потерять точность. Метод не подходит для усечения числовой дроби: используйте Math.trunc(). Число сначала превращается в строку, поэтому Number.parseInt(0.0000005) возвращает 5: строка имеет вид "5e-7". Сравните результат в примере с основаниями и маленьким числом.

Примеры, попробуйте сами

Как parseInt() разбирает числа с разными основаниями

Измените строку и основание radix. Сравните десятичную, двоичную и шестнадцатеричную записи, затем — разбор 0.0000005 и Math.trunc().

index.html
HTML
<p>Результат выполнения выводится в консоль.</p>
main.js
JavaScript
console.log(Number.parseInt('1')) // Метод возвращает 1
console.log(Number.parseInt('    1')) // Метод возвращает 1
console.log(Number.parseInt('    1    ')) // Метод возвращает 1
console.log(Number.parseInt('1.23abc')) // Метод возвращает 1
console.log(Number.parseInt('1.23')) // Метод возвращает 1
console.log(Number.parseInt('123e-3')) // Метод возвращает 123
console.log(Number.parseInt('0.0123E+3')) // Метод возвращает 0
console.log(Number.parseInt('0xAA')) // Метод возвращает 170
console.log(Number.parseInt('N', 32)) // Метод возвращает 23
console.log(Number.parseInt('A', 16)) // Метод возвращает 10
console.log(Number.parseInt('F', 16)) // Метод возвращает 15

console.log(Number.parseInt('123FA', 10)) // Метод возвращает 123
console.log(Number.parseInt('123FA', 16)) // Метод возвращает 74746

console.log(Number.parseInt('A')) // Метод возвращает NaN
console.log(Number.parseInt(Infinity)) // Метод возвращает NaN
console.log(Number.parseInt(-Infinity)) // Метод возвращает NaN
console.log(Number.parseInt('abc1.23abc')) // Метод возвращает NaN
console.log(Number.parseInt('abc1.23')) // Метод возвращает NaN
console.log(Number.parseInt(undefined)) // Метод возвращает NaN
console.log(Number.parseInt(true)) // Метод возвращает NaN
console.log(Number.parseInt(null)) // Метод возвращает NaN
console.log(Number.parseInt([])) // Метод возвращает NaN
console.log(Number.parseInt({})) // Метод возвращает NaN
console.log(Number.parseInt('')) // Метод возвращает NaN
console.log(Number.parseInt(' ')) // Метод возвращает NaN

// Ведущий ноль не выбирает восьмеричную систему, а 0b не распознаётся автоматически.
console.log(Number.parseInt('010')) // 10
console.log(Number.parseInt('0b10')) // 0
console.log(Number.parseInt('10', 2)) // 2
console.log(Number.parseInt('10', 1)) // NaN

// Число сначала превращается в строку: 0.0000005 становится "5e-7", поэтому результат 5.
console.log(String(0.0000005)) // "5e-7"
console.log(Number.parseInt(0.0000005)) // 5
console.log(Math.trunc(0.0000005)) // 0 — правильное усечение числа