Signatur
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
"<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
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);
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);
// 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 überinnerHTMLeinfügst, kann eingeschleuster HTML- oder Skript-Code ausgeführt werden. Verwende stattdessentextContentoder maskiere die Eingabe vorher. - Die Methode nimmt keine Argumente und fügt keine Attribute wie
classoderstylehinzu. Für die Gestaltung ist CSS (z. B.font-size: smaller) die bessere Wahl. - Wird die Methode auf
nulloderundefinedaufgerufen (z. B. überString.prototype.small.call(null)), löst sie einenTypeErroraus. Andere Werte werden vorher in einen String umgewandelt.