JavaScript метод Number.parseInt()
Определение и применение
JavaScript метод parseInt() принимает в качестве аргумента строковое значение и возвращает целое число,
которое соответствует указанному основанию системы счисления.
Проверьте поведение в редактируемом примере.
Поддержка браузерами
Спецификация: ecma262
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
parseInt | 34 | 12 | 25 | 21 | 9 | 34 | 25 | 21 | 9 | 2.0 | 37 | 9 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
// возвращает целое число, которое соответствует десятичной или шестнадцатеричной системе счисления (определяется автоматически)
Number.parseInt( string );
// возвращает целое число, которое соответствует указанному основанию системы счисления
Number.parseInt( string, radix );
Спецификация
Значения параметров
| Параметр | Описание |
|---|---|
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
<p>Результат выполнения выводится в консоль.</p>
main.js
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 — правильное усечение числа