Array.prototype.toString()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
ThetoString() method ofArray instances returns a string representing thespecified array and its elements.
In this article
Try it
const array = [1, 2, "a", "1a"];console.log(array.toString());// Expected output: "1,2,a,1a"Syntax
toString()Parameters
None.
Return value
A string representing the elements of the array.
Description
TheArray object overrides thetoString method ofObject. ThetoString method of arrays callsjoin() internally, which joins the array and returns one string containing each array element separated by commas. If thejoin method is unavailable or is not a function,Object.prototype.toString is used instead, returning[object Array].
const arr = [];arr.join = 1; // re-assign `join` with a non-functionconsole.log(arr.toString()); // [object Array]console.log(Array.prototype.toString.call({ join: () => 1 })); // 1JavaScript calls thetoString method automatically when an array is to be represented as a text value or when an array is referred to in a string concatenation.
Array.prototype.toString recursively converts each element, including other arrays, to strings. Because the string returned byArray.prototype.toString does not have delimiters, nested arrays look like they are flattened.
const matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9],];console.log(matrix.toString()); // 1,2,3,4,5,6,7,8,9When an array is cyclic (it contains an element that is itself), browsers avoid infinite recursion by ignoring the cyclic reference.
const arr = [];arr.push(1, [3, arr, 4], 2);console.log(arr.toString()); // 1,3,,4,2Examples
>Using toString()
const array = [1, 2, "a", "1a"];console.log(array.toString()); // "1,2,a,1a"Using toString() on sparse arrays
Following the behavior ofjoin(),toString() treats empty slots the same asundefined and produces an extra separator:
console.log([1, , 3].toString()); // '1,,3'Calling toString() on non-array objects
toString() isgeneric. It expectsthis to have ajoin() method; or, failing that, usesObject.prototype.toString() instead.
console.log(Array.prototype.toString.call({ join: () => 1 }));// 1; a numberconsole.log(Array.prototype.toString.call({ join: () => undefined }));// undefinedconsole.log(Array.prototype.toString.call({ join: "not function" }));// "[object Object]"Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.tostring> |