Signatur
Beschreibung
toString() wandelt ein typisiertes Array (z. B. Uint8Array, Float32Array, BigInt64Array) in einen String um. Jedes Element wird in einen String umgewandelt, und die Teile werden mit Kommas ohne Leerzeichen verbunden. Die Methode ist dabei dasselbe Funktionsobjekt wie Array.prototype.toString: Uint8Array.prototype.toString === Array.prototype.toString ergibt true.
Intern ruft die Methode this.join() auf. Das Ergebnis ist also dasselbe wie bei typedArray.join(","). JavaScript ruft toString() automatisch auf, sobald ein typisiertes Array als String gebraucht wird, zum Beispiel bei der String-Verkettung mit +, in Template-Literalen oder bei String(typedArray).
Nützlich ist die Methode vor allem für schnelle Debug-Ausgaben, Logs oder einfache Serialisierung. Für ein anderes Trennzeichen nimmst du join(), für sprachabhängige Zahlenformate toLocaleString(). Für eine echte Datenübertragung eignen sich JSON.stringify(Array.from(ta)) oder eine Base64-Kodierung besser.
Rückgabewert
"".Beispiele
Einfache Umwandlung in einen String
const bytes = new Uint8Array([10, 20, 30, 255]);
console.log(bytes.toString());
const floats = new Float32Array([1.5, 2.25, -0.5]);
console.log(floats.toString());
Automatischer Aufruf in Template-Literalen und bei Verkettung
const pixel = new Uint8ClampedArray([255, 128, 0, 255]);
// toString() wird implizit aufgerufen
console.log(`RGBA: ${pixel}`);
console.log('Werte: ' + pixel);
console.log(String(new Int16Array(0)) === '');
Vergleich mit join(), toLocaleString() und JSON
const data = new Float64Array([1234.5, 0.1, 42]);
console.log(data.toString()); // wie join(',')
console.log(data.join(' | ')); // eigenes Trennzeichen
console.log(data.toLocaleString('de-DE')); // lokalisierte Zahlen
console.log(JSON.stringify(data)); // Objekt mit Index-Schlüsseln!
console.log(JSON.stringify(Array.from(data)));
BigInt-Arrays in Debug-Logs
const ids = new BigUint64Array([1n, 2n ** 40n, 18446744073709551615n]);
console.log(`IDs: ${ids}`);
// Wichtig · Fallstricke
- Kein eigenes Format: Die Ausgabe enthält weder den Typnamen noch eckige Klammern.
new Uint8Array([1,2])undnew Float64Array([1,2])ergeben beide"1,2". Den Typ bekommst du zusätzlich überta.constructor.nameoderObject.prototype.toString.call(ta), was"[object Uint8Array]"liefert. - Die Ausgabe ist mehrdeutig:
toLocaleString('de-DE')nutzt Kommas als Dezimaltrennzeichen, sodass sich Elementgrenzen nicht mehr erkennen lassen. Für eindeutige Ausgaben nimmst dujoin()mit einem passenden Trennzeichen. - Abgekoppelter Puffer: Wurde der zugrunde liegende
ArrayBufferabgekoppelt (detached), etwa nachpostMessagemit Transfer oderArrayBuffer.prototype.transfer(), dann ist die Länge 0 und das Ergebnis ist"". - JSON:
JSON.stringify(typedArray)nutzt nichttoString(). Es erzeugt ein Objekt mit Index-Schlüsseln. Wandle das Array vorher mitArray.from()um. - Performance: Bei sehr großen Arrays (etwa Megabytes an Binärdaten) entstehen riesige Strings. Für Logs solltest du daher vorher mit
subarray()einen Ausschnitt nehmen. - Kompatibilität: Wird von allen modernen Browsern und von Node.js unterstützt (Baseline).
BigInt64ArrayundBigUint64Arraygibt es seit ES2020.