Learn JavaScript

toString() - метод для преобразования числа в строку в JavaScript

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. Главное, что стоит запомнить: метод возвращает строку и особенно полезен тогда, когда нужно не просто преобразование, а запись числа в другой системе счисления.