Spec-Zone.ru › JavaScript

Array.prototype.toString()

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Метод toString() экземпляров Array возвращает строку, представляющую указанный массив и его элементы.

Попробуйте

const array = [1, 2, "a", "1a"];

console.log(array.toString());
// Expected output: "1,2,a,1a"

Синтаксис

toString()

Параметры

Нет.

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

Строка, представляющая элементы массива.

Описание

Объект Array переопределяет метод toString объекта Object. Метод toString массивов внутренне вызывает join(), который объединяет массив и возвращает одну строку, содержащую каждый элемент массива, разделённый запятыми. Если метод join недоступен или не является функцией, вместо него используется Object.prototype.toString, возвращающий [object Array].

const arr = [];
arr.join = 1; // re-assign `join` with a non-function
console.log(arr.toString()); // [object Array]

console.log(Array.prototype.toString.call({ join: () => 1 })); // 1

JavaScript автоматически вызывает метод toString, когда массив должен быть представлен в виде текстового значения или когда массив используется в конкатенации строк.

Array.prototype.toString рекурсивно преобразует каждый элемент, включая другие массивы, в строки. Поскольку строка, возвращаемая Array.prototype.toString, не имеет разделителей, вложенные массивы выглядят так, как будто они "сплющены".

const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];

console.log(matrix.toString()); // 1,2,3,4,5,6,7,8,9

Когда массив является циклическим (содержит элемент, который является самим собой), браузеры избегают бесконечной рекурсии, игнорируя циклическую ссылку.

const arr = [];
arr.push(1, [3, arr, 4], 2);
console.log(arr.toString()); // 1,3,,4,2

Примеры

Использование toString()

const array = [1, 2, "a", "1a"];

console.log(array.toString()); // "1,2,a,1a"

Использование toString() на разреженных массивах

Следуя поведению join(), toString() обрабатывает пустые слоты так же, как undefined, и генерирует дополнительный разделитель:

console.log([1, , 3].toString()); // '1,,3'

Вызов toString() на объектах, не являющихся массивами

toString() является обобщённым. Он ожидает, что this будет иметь метод join(); или, в противном случае, использует Object.prototype.toString().

console.log(Array.prototype.toString.call({ join: () => 1 }));
// 1; a number
console.log(Array.prototype.toString.call({ join: () => undefined }));
// undefined
console.log(Array.prototype.toString.call({ join: "not function" }));
// "[object Object]"

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

Спецификация
Спецификация языка ECMAScript® 2027
# sec-array.prototype.tostring

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

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
toString
1
12
1
4
1
18
4
10.1
1
1.0
1
1
1.0.0
1.0
0.10.0

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

  • Руководство по индексированным коллекциям
  • Array
  • Array.prototype.join()
  • Array.prototype.toLocaleString()
  • TypedArray.prototype.toString()
  • String.prototype.toString()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API