Signatur
Beschreibung
Die Methode toString() wandelt einen booleschen Wert in seine Textdarstellung um. Das Ergebnis ist immer genau einer der beiden Strings "true" oder "false". Das Boolean-Objekt überschreibt damit die allgemeine Methode Object.prototype.toString(), die sonst "[object Boolean]" liefern würde.
Ruft man die Methode auf einem primitiven Wert wie true auf, verpackt JavaScript den Wert im Hintergrund kurz in ein Wrapper-Objekt (Autoboxing). Deshalb funktioniert true.toString(), ohne dass man vorher new Boolean() aufrufen muss.
Direkt aufrufen muss man toString() nur selten. JavaScript nutzt die Umwandlung automatisch bei String-Verkettung, in Template-Literalen und bei String(wert). Ein ausdrücklicher Aufruf lohnt sich, wenn im Code klar sichtbar sein soll, dass hier ein String entsteht, etwa beim Schreiben von HTML-Attributen, URL-Parametern oder Werten für den Speicher (localStorage).
Rückgabewert
"true", wenn der Wert true ist, sonst "false".Beispiele
Einfache Umwandlung von Primitiven und Wrapper-Objekten
const aktiv = true;
console.log(aktiv.toString());
console.log(false.toString());
const wrapper = new Boolean(false);
console.log(wrapper.toString());
console.log(typeof aktiv.toString());
ARIA-Attribut beim Umschalten eines Menüs setzen
const button = document.querySelector('#menu-toggle');
let offen = false;
button.addEventListener('click', () => {
offen = !offen;
// setAttribute erwartet einen String
button.setAttribute('aria-expanded', offen.toString());
console.log(button.getAttribute('aria-expanded'));
});
Einstellung in localStorage speichern und wieder einlesen
const darkMode = true;
localStorage.setItem('darkMode', darkMode.toString());
// Beim Einlesen NICHT Boolean(str) verwenden – "false" wäre truthy!
const gespeichert = localStorage.getItem('darkMode') === 'true';
console.log(gespeichert, typeof gespeichert);
Sicherer Aufruf bei möglicherweise fehlenden Werten
const flags = { beta: true, legacy: undefined };
const alsText = (wert) => String(wert); // wirft keinen Fehler
console.log(alsText(flags.beta));
console.log(alsText(flags.legacy));
try {
flags.legacy.toString();
} catch (e) {
console.log(e.constructor.name);
}
// Wichtig · Fallstricke
- Kein
null/undefined: Ein Aufruf aufnulloderundefinedlöst einenTypeErroraus. Wenn ein Wert fehlen kann, istString(wert)oderwert?.toString()sicherer. - Falsch zurückwandeln:
Boolean("false")ergibttrue, weil jeder nicht leere String truthy ist. Zum Zurückwandeln vergleicht man ausdrücklich:str === "true". - Andere Objekte als
this:Boolean.prototype.toString.call(1)wirft einenTypeError. Die Methode funktioniert nur mit booleschen Werten oderBoolean-Objekten. - Wrapper-Objekte:
new Boolean(false)ist ein Objekt und damit truthy, obwohltoString()"false"liefert. Wrapper-Objekte sollte man vermeiden. - Die Methode ist seit ECMAScript 1 Teil der Sprache und funktioniert in allen Browsern und in Node.js.