Learn JavaScript

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

toString() возвращает строковое представление значения. В отличие от String(), это не отдельная функция, а метод, который вызывают у самого значения.

value.toString()

Обычно toString() используют, когда уже известно, что значение существует и у него есть этот метод.

Синтаксис

value.toString()

Результат метода обычно имеет тип string.

Как работает toString()

toString() вызывается у значения и возвращает строку.

console.log((123).toString()); // "123"
console.log(true.toString());  // "true"

Для строки результат будет такой же строкой:

console.log("hello".toString()); // "hello"

Примеры

Числа

console.log((25).toString());   // "25"
console.log((3.14).toString()); // "3.14"

У чисел есть полезная особенность: можно указать систему счисления.

console.log((10).toString(2));  // "1010"
console.log((255).toString(16)); // "ff"

Булевы значения

console.log(true.toString());  // "true"
console.log(false.toString()); // "false"

Массивы

console.log([1, 2, 3].toString()); // "1,2,3"
console.log(["a", "b"].toString()); // "a,b"
console.log([].toString()); // ""

Для массива результат обычно выглядит как элементы, соединённые через запятую.

Объекты

console.log(({ name: "Alex" }).toString()); // "[object Object]"

Для обычных объектов результат чаще всего не очень полезен.

toString() и String()

toString() и String() часто дают одинаковый результат, но работают по-разному.

console.log((123).toString()); // "123"
console.log(String(123));      // "123"

Главная разница в том, что toString() нельзя вызвать у null и undefined.

console.log(String(null));      // "null"
console.log(String(undefined)); // "undefined"

// null.toString();      // Ошибка
// undefined.toString(); // Ошибка

Если значение может быть null или undefined, безопаснее использовать String().

Частые ошибки

Вызывать toString() у null и undefined

const value = null;

// value.toString(); // Ошибка
console.log(String(value)); // "null"

Вызывать toString() у числа без скобок

Такой код может сломаться:

123.toString(); // SyntaxError

Поэтому число обычно оборачивают в скобки:

console.log((123).toString()); // "123"

Когда использовать

toString() удобен, когда:

  • значение точно не null и не undefined
  • нужно вызвать метод у числа, массива или другого объекта
  • нужно преобразовать число в другую систему счисления через toString(2) или toString(16)

Быстрая памятка

  • toString() возвращает строковое представление значения
  • это метод, а не отдельная функция
  • toString() нельзя вызвать у null и undefined
  • для чисел можно передать основание системы счисления
  • если тип значения неизвестен, безопаснее использовать String()

Коротко

toString() - это метод JavaScript для преобразования значения в строку. Он удобен, когда значение точно существует, а для чисел ещё и позволяет получить строку в двоичном, шестнадцатеричном и других форматах.