Array.prototype.toString()
BaselineWidely 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.
Try it
const array1 = [1, 2, "a", "1a"];console.log(array1.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 })); // 1
JavaScript 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,9
When 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,2
Examples
Using toString()
const array1 = [1, 2, "a", "1a"];console.log(array1.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 |