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 для преобразования значения в строку. Он удобен, когда значение точно существует, а для чисел ещё и позволяет получить строку в двоичном, шестнадцатеричном и других форматах.