Start · Sprachen · JavaScript · Referenz · String.prototype.italics()

String.prototype.italics()

Methode

Gibt einen neuen String zurück, der den Ausgangsstring in ein HTML-Element <code>&lt;i&gt;…&lt;/i&gt;</code> einbettet und ihn so kursiv darstellen lässt.

seit JavaScript ES2015 (Annex B, veraltet) – Baseline: alle Browse deprecated seit ja Kategorie: method-property

Signatur

String.prototype.italics()

Beschreibung

Die Methode italics() gehört zu den sogenannten HTML-Wrapper-Methoden von String. Sie hängt vor und nach dem Ausgangsstring die Tags <i> und </i> an und gibt das Ergebnis als neuen String zurück. Der ursprüngliche String bleibt unverändert, da Strings in JavaScript unveränderlich sind.

Die Methode erzeugt nur Text. Es wird kein DOM-Element angelegt, und der Inhalt wird nicht escaped. Kursiv dargestellt wird das Ergebnis erst, wenn man es als HTML interpretieren lässt, etwa über innerHTML.

italics() ist im ECMAScript-Standard nur im Anhang B („Legacy-Features für Webbrowser“) festgeschrieben und gilt als veraltet. Für neuen Code sollte man Elemente mit document.createElement('i') oder 'em' erzeugen und über textContent befüllen. Die Formatierung selbst gehört idealerweise in CSS (font-style: italic).

Rückgabewert

Typ
string
Beschreibung
Ein neuer String der Form <i>str</i>. Dabei steht str für den unveränderten Ausgangsstring.

Beispiele

Grundlegende Verwendung

const titel = 'Der Zauberberg';
const html = titel.italics();
console.log(html);
console.log(titel); // Original bleibt unverändert
<i>Der Zauberberg</i> Der Zauberberg

Fehlendes Escaping: Sonderzeichen bleiben roh

const eingabe = 'A & B <b>fett</b>';
console.log(eingabe.italics());
<i>A & B <b>fett</b></i>

Moderne, sichere Alternative mit dem DOM

const buchtitel = 'Die Blechtrommel';

// Veraltet und anfällig für XSS:
// container.innerHTML = buchtitel.italics();

// Empfohlen: Element erzeugen, Text sicher setzen
const i = document.createElement('i');
i.textContent = buchtitel;
document.body.append('Lieblingsbuch: ', i);
console.log(i.outerHTML);
<i>Die Blechtrommel</i>

Aufruf mit this, das kein String ist

console.log(String.prototype.italics.call(42));

try {
  String.prototype.italics.call(null);
} catch (e) {
  console.log(e.constructor.name);
}
<i>42</i> TypeError

// Wichtig · Fallstricke

  • Veraltet: Die Methode steht nur in Annex B der ECMAScript-Spezifikation. Alle Browser und Node.js unterstützen sie weiterhin, in neuem Code sollte man sie aber nicht verwenden. Linter wie ESLint mit Regeln wie unicorn/no-deprecated und TypeScript-Hinweise markieren sie teilweise als veraltet.
  • XSS-Gefahr: Der Inhalt wird nicht escaped. Übergibt man das Ergebnis mit Nutzereingaben an innerHTML, insertAdjacentHTML oder document.write, kann eingeschleustes HTML oder Skriptcode ausgeführt werden. Nutze stattdessen textContent oder bereinige die Eingabe vorher, etwa mit DOMPurify. Wenn möglich, sichere zusätzlich mit einer Content Security Policy und Trusted Types ab.
  • Semantik: <i> bedeutet in HTML5 einen „abweichenden Tonfall“, etwa Fachbegriffe oder Werktitel. Für echte Betonung ist <em> das passende Element, für reine Optik CSS.
  • Wird die Methode mit null oder undefined als this aufgerufen, wirft sie einen TypeError. Andere Werte werden vorher in einen String umgewandelt.