Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Эта страница была переведена с английского языка силами сообщества. Вы тоже можете внести свой вклад, присоединившись к русскоязычному сообществу MDN Web Docs.

parseInt()

BaselineWidely available

Функция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)

Синтаксис

parseInt(string, radix);

Параметры

string

Значение, которое необходимо проинтерпретировать. Если значение параметраstring не принадлежит строковому типу, оно преобразуется в него (с помощью абстрактной операцииToString). Пробелы в начале строки не учитываются.

radix

Целое число в диапазоне между 2 и 36, представляющее собой основание системы счисления числовой строкиstring, описанной выше. В основном пользователи используют десятичную систему счисления и указывают 10.Всегда указывайте этот параметр, чтобы исключить ошибки считывания и гарантировать корректность исполнения и предсказуемость результата. Когда основание системы счисления не указано, разные реализации могут возвращать разные результаты.

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

Целое число, полученное парсингом (разбором и интерпретацией) переданной строки. Если первый символ не получилось сконвертировать в число, то возвращаетсяNaN.

Описание

ФункцияparseInt преобразует первый переданный ей аргумент в строковый тип, интерпретирует его и возвращает целое число или значениеNaN. Результат (если неNaN) является целым числом и представляет собой первый аргумент (string), рассматривающийся как число в указанной системе счисления (radix). Например, основание 10 указывает на преобразование из десятичного числа, 8 - восьмеричного, 16 - шестнадцатеричного и так далее. Если основание больше10, то для обозначения цифр больше9 используются буквы. Например, для шестнадцатеричных чисел (основание 16) используются буквы отA доF.

Если функцияparseInt встречает символ, не являющийся числом в указанной системе счисления, она пропускает этот и все последующие символы (даже, если они подходящие) и возвращает целое число, преобразованное из части строки, предшествовавшей этому символу.parseInt отсекает дробную часть числа. Пробелы в начале и конце строки разрешены.

Так как некоторые числа включают символe в своём строковом представлении (например,6.022e23), то использованиеparseInt для усечения числовых значений может дать неожиданные результаты, когда используются очень малые или очень большие величины.parseInt не должна использоваться как замена дляMath.floor().

Если основание системы счисления имеет значениеundefined (не определено) или равно 0 (или не указано), то JavaScript по умолчанию предполагает следующее:

  • Если значение входного параметраstring начинается с "0x" или "0X",за основание системы счисления принимается 16, и интерпретации подвергается оставшаяся часть строки.
  • Если значение входного параметраstring начинается с "0",за основание системы счисления принимается либо 8, либо 10, в зависимости от конкретной реализации. В спецификации ECMAScript 5 прописано использование 10 (десятичная система), но это поддерживается ещё не всеми браузерами, поэтому необходимовсегда указывать основание системы счисления при использовании функцииparseInt.
  • Если значение входного параметраstring начинается с любого другого символа, система счисления считается десятичной (основание 10).

Если первый символ строки не может быть преобразован в число,parseInt возвращает значениеNaN.

С точки зрения математики, значениеNaN не является числом в какой-либо системе счисления. Чтобы определить, вернёт лиparseInt значениеNaN в качестве результата, можно вызвать функциюisNaN. ЕслиNaN участвует в арифметических операциях, результатом также будетNaN.

Для преобразования числа в строку в указанной системе счисления, используйтеintValue.toString(radix).

Примеры

Пример: ИспользованиеparseInt

Все следующие примеры возвращают15:

js
parseInt(" 0xF", 16);parseInt(" F", 16);parseInt("17", 8);parseInt(021, 8);parseInt("015", 10); //parseInt(015, 10); вернёт 15parseInt(15.99, 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); // Неверное число в двоичной системе счисления

Все следующие примеры возвращают-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); // Очень большие числа становятся 4parseInt(0.00000000000434, 10); // Очень маленькие числа становятся 4

Следующий пример возвращает224:

js
parseInt("0e0", 16);

Восьмеричная интерпретация без указания системы счисления

Хотя это не поощряется в спецификацией ECMAScript 3 и запрещено в ECMAScript 5, многие реализации интерпретируют числовую строку, начинающуюся с0, как восьмеричную. Следующий пример может иметь как восьмеричный, так и десятичный результат.Чтобы избежать непредвиденного результата, всегда указывайте основание системы счисления.

js
parseInt("0e0"); // 0parseInt("08"); // 0, '8' не является цифрой в восьмеричной системе.

ECMAScript 5 устраняет восьмеричную интерпретацию

Спецификация ECMAScript 5 функцииparseInt больше не разрешает трактовать в восьмеричной системе счисления строки, начинающиеся с0. ECMAScript 5 провозглашает:

ФункцияparseInt производит целочисленное значение в результате интерпретации содержимого строкового аргумента в соответствии с указанным основанием системы счисления. Пробел в начале строки не учитывается. Если основание системы счисления не определено или равно0, оно считается равным10, за исключением случаев, когда строка начинается с пар символов0x или0X: тогда за основание принимается 16. Если основанием системы счисления указано16, число также может начинаться с пар символов0x или0X.

В этом ECMAScript 5 расходится со спецификацией ECMAScript 3, в которой восьмеричная интерпретация не поощрялась, но и не была запрещена.

Поскольку на момент 2013 года описанное выше поведение было применено не во всех реализациях, а поддержка старых браузеров является необходимой,всегда указывайте основание системы счисления.

Более строгая функция интерпретации

Иногда необходим более строгий способ интерпретации целочисленных значений. В этом могут помочь регулярные выражения:

js
var filterInt = function (value) {  if (/^(\-|\+)?([0-9]+|Infinity)$/.test(value)) return Number(value);  return NaN;};console.log(filterInt("421")); // 421console.log(filterInt("-421")); // -421console.log(filterInt("+421")); // 421console.log(filterInt("Infinity")); // Infinityconsole.log(filterInt("421e+0")); // NaNconsole.log(filterInt("421hop")); // NaNconsole.log(filterInt("hop1.61803398875")); // NaNconsole.log(filterInt("1.61803398875")); // NaN

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

Specification
ECMAScript® 2026 Language Specification
# sec-parseint-string-radix

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp