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

String.prototype.small()

Methode

Gibt einen neuen String zurück, der den Ausgangsstring in ein <code>&lt;small&gt;</code>-Element einbettet, z. B. <code>"&lt;small&gt;Text&lt;/small&gt;"</code>.

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

Signatur

String.prototype.small()

Beschreibung

small() gehört zu den sogenannten HTML-Wrapper-Methoden von String. Die Methode umschließt den String, auf dem sie aufgerufen wird, mit den Tags <small> und </small> und gibt das Ergebnis als neuen String zurück. Der ursprüngliche String bleibt dabei unverändert, denn Strings sind in JavaScript unveränderlich.

Die Methode erzeugt kein DOM-Element, sondern nur Text mit HTML-Auszeichnung. Sichtbar wird der Effekt erst, wenn du diesen Text als HTML auswertest, etwa über innerHTML oder insertAdjacentHTML(). Der Browser zeigt den Inhalt dann standardmäßig eine Schriftgröße kleiner an. In HTML5 steht <small> inhaltlich für Randbemerkungen und Kleingedrucktes, zum Beispiel Copyright-Hinweise oder rechtliche Hinweise.

Die Methode ist in Anhang B der ECMAScript-Spezifikation beschrieben, der Funktionen nur aus Kompatibilitätsgründen enthält, und gilt als veraltet. In neuem Code solltest du Elemente lieber mit document.createElement("small") und textContent erzeugen oder Template-Literale verwenden, wenn der Inhalt vorher sicher maskiert wurde. small() taucht heute fast nur noch in Altcode auf.

Rückgabewert

Typ
string
Beschreibung
Ein neuer String der Form "<small>" + str + "</small>", wobei str der Ausgangsstring ist.

Beispiele

Einfacher Aufruf

const hinweis = "Alle Angaben ohne Gewähr";
console.log(hinweis.small());
console.log(hinweis); // Original bleibt unverändert
<small>Alle Angaben ohne Gewähr</small> Alle Angaben ohne Gewähr

Kleingedrucktes in einen Footer einfügen (Altcode-Stil)

const footer = document.querySelector("footer");
const jahr = new Date().getFullYear();
// Nur sicher, weil der Text vollständig selbst erzeugt wird
footer.innerHTML = `© ${jahr} Beispiel GmbH`.small();
console.log(footer.innerHTML);
<small>© 2025 Beispiel GmbH</small>

Moderne, sichere Alternative per DOM

const kleingedruckt = (text) => {
  const el = document.createElement("small");
  el.textContent = text; // wird automatisch maskiert
  return el;
};

const benutzereingabe = "<img src=x onerror=alert(1)>";
document.body.append(kleingedruckt(benutzereingabe));
console.log(document.body.lastElementChild.outerHTML);
<small>&lt;img src=x onerror=alert(1)&gt;</small>

// Wichtig · Fallstricke

  • Veraltet: Die Methode steht in Anhang B der ECMAScript-Spezifikation (Altlasten für Webbrowser). Sie funktioniert in allen Browsern und in Node.js, sollte aber in neuem Code nicht mehr verwendet werden. Linter wie ESLint oder TypeScript-Hinweise (@deprecated) weisen darauf hin.
  • Keine Maskierung, daher XSS-Gefahr: small() maskiert Zeichen wie <, > und & nicht. Wenn du Benutzereingaben so verpackst und über innerHTML einfügst, kann eingeschleuster HTML- oder Skript-Code ausgeführt werden. Verwende stattdessen textContent oder maskiere die Eingabe vorher.
  • Die Methode nimmt keine Argumente und fügt keine Attribute wie class oder style hinzu. Für die Gestaltung ist CSS (z. B. font-size: smaller) die bessere Wahl.
  • Wird die Methode auf null oder undefined aufgerufen (z. B. über String.prototype.small.call(null)), löst sie einen TypeError aus. Andere Werte werden vorher in einen String umgewandelt.