toString() превращает число в строку.
Это один из самых простых способов получить строковое представление числа. Ещё он умеет переводить число в другую систему счисления.
Синтаксис
number.toString()
number.toString(radix)
number- числоradix- основание системы счисления от2до36
Что делает toString()
Метод берёт число и возвращает его строковую версию.
console.log((123).toString()); // "123"
console.log((12.34).toString()); // "12.34"
По умолчанию число записывается в обычной десятичной форме.
Что возвращает toString()
toString() возвращает не число, а строку.
const result = (255).toString();
console.log(result); // "255"
console.log(typeof result); // "string"
Это важно помнить, если потом вы хотите продолжать именно числовые вычисления.
toString() с radix
Главная особенность метода в том, что он умеет переводить число в разные системы счисления.
console.log((10).toString(2)); // "1010"
console.log((255).toString(16)); // "ff"
console.log((35).toString(36)); // "z"
Это удобно, когда нужно получить:
- двоичную запись
- шестнадцатеричную запись
- компактную строку в
base36
Допустимый диапазон radix
radix должен быть от 2 до 36.
Если передать значение вне этого диапазона, будет RangeError.
(10).toString(1); // RangeError
Отрицательные числа
С отрицательными числами метод тоже работает нормально.
console.log((-10).toString()); // "-10"
console.log((-10).toString(2)); // "-1010"
Минус просто сохраняется в строке.
NaN и Infinity
Для специальных числовых значений toString() тоже возвращает строки.
console.log((NaN).toString()); // "NaN"
console.log((Infinity).toString()); // "Infinity"
Это обычное и ожидаемое поведение метода.
Дробные числа и radix
Метод можно вызывать и с дробными числами.
console.log((123.456).toString(16)); // "7b.74bc6a7ef9dc"
Работает это корректно, но результат в другой системе счисления может выглядеть непривычно.
Число не меняется
toString() не изменяет исходное число. Он только возвращает новую строку.
const value = 255;
const text = value.toString(16);
console.log(value); // 255
console.log(text); // "ff"
Ловушка с 123.toString()
Так писать нельзя:
123.toString()
У целого числового литерала точка воспринимается как часть числа, поэтому запись ломается.
Обычно пишут так:
console.log((123).toString()); // "123"
console.log(123..toString()); // "123"
Первый вариант читается заметно понятнее.
toString() и String()
Оба варианта могут превратить число в строку, но между ними есть разница.
console.log((255).toString()); // "255"
console.log(String(255)); // "255"
toString()вызывается у самого числаString()- это отдельная функция преобразования
Главный плюс toString() для чисел в том, что у него есть radix.
console.log((255).toString(16)); // "ff"
console.log(String(255)); // "255"
Если нужна просто строка, подойдут оба варианта.
Если нужен перевод в другую систему счисления, удобнее toString(radix).
toString() и toFixed()
Эти методы решают разные задачи.
console.log((12.3).toString()); // "12.3"
console.log((12.3).toFixed(2)); // "12.30"
toString()просто превращает число в строкуtoFixed()форматирует число с фиксированным количеством знаков после запятой
Когда это полезно
toString() удобно использовать, когда:
- нужно просто превратить число в строку
- требуется двоичная или шестнадцатеричная запись
- вы хотите получить компактный текстовый идентификатор через
base36
Пример:
const color = 255;
console.log(color.toString(16)); // "ff"
Частые ошибки
Думать, что метод возвращает число
const result = (10).toString();
console.log(typeof result); // "string"
После вызова вы уже работаете со строкой.
Писать 123.toString()
123.toString()
Для целых литералов обычно нужен вариант (123).toString().
Передавать неверный radix
(10).toString(1)
Основание системы счисления должно быть от 2 до 36.
Использовать toString() для точного форматирования дробной части
console.log((12.3).toString()); // "12.3"
Если нужны, например, ровно два знака после запятой, обычно лучше toFixed().
Быстрая памятка
toString()превращает число в строку- метод возвращает
string, а неnumber - по умолчанию используется десятичная запись
- через
radixможно получить другую систему счисления radixдолжен быть от2до36- для целых литералов обычно пишут
(123).toString()
Коротко
toString() - это удобный способ превратить число в строку в JavaScript. Главное, что стоит запомнить: метод возвращает строку и особенно полезен тогда, когда нужно не просто преобразование, а запись числа в другой системе счисления.