| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/String/length | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
Die length Daten-Eigenschaft eines String-Wertes enthlt die Lnge des Strings in UTF-16-Code-Einheiten.
const str = "Life, the universe and everything. Answer:";
console.log(`${str} ${str.length}`);
// Expected output: "Life, the universe and everything. Answer: 42"
Eine nicht-negative ganze Zahl.
Eigenschaften von String: length | |
|---|---|
| Schreibbar | nein |
| Aufzhlbar | nein |
| Konfigurierbar | nein |
Diese Eigenschaft gibt die Anzahl der Code-Einheiten im String zurck. JavaScript verwendet UTF-16 Kodierung, bei der jedes Unicode-Zeichen als eine oder zwei Code-Einheiten kodiert werden kann. Daher kann es vorkommen, dass der von length zurckgegebene Wert nicht mit der tatschlichen Anzahl von Unicode-Zeichen im String bereinstimmt. Fr gngige Schriften wie Latein, Kyrillisch, bekannte CJK-Zeichen usw. sollte dies kein Problem darstellen, aber wenn Sie mit bestimmten Schriften wie Emojis, mathematischen Symbolen oder seltenen chinesischen Zeichen arbeiten, mssen Sie mglicherweise den Unterschied zwischen Code-Einheiten und Zeichen bercksichtigen.
Die Sprachspezifikation verlangt, dass Strings eine maximale Lnge von 253 - 1 Elementen haben, was das obere Limit fr przise Ganzzahlen ist. Ein String mit dieser Lnge bentigt jedoch 16384TiB Speicherplatz, was nicht in den Speicher eines realistischen Gerts passt, daher neigen Implementierungen dazu, die Schwelle zu senken, was es ermglicht, die Lnge des Strings bequem in einem 32-Bit-Ganzzahl zu speichern.
Hinweis: Alle oben angegebenen Speichergren gehen davon aus, dass Strings im Speicher in UTF-16-Kodierung gespeichert sind, was eine berschtzung darstellen kann. Der tatschlich von einem String genutzte Speicherplatz unterliegt Optimierungen der JavaScript-Engine, und alle groen Engines verwenden eine kompaktere interne Darstellung, wie z.B. Ein-Byte-Speicherung fr Strings, die nur Latin-1-Zeichen enthalten.
Wenn Sie mit groen Strings in anderen Kodierungen (wie UTF-8-Dateien oder Blobs) arbeiten, beachten Sie, dass bei der bertragung der Daten in einen JS-String die Kodierung immer zu UTF-16 wird. Die Gre des Strings kann sich von der Gre der Quelldatei unterscheiden.
const str1 = "a".repeat(2 ** 29 - 24); // Success
const str2 = "a".repeat(2 ** 29 - 23); // RangeError: Invalid string length
const buffer = new Uint8Array(2 ** 29 - 24).fill("a".codePointAt(0)); // This buffer is 512MiB in size
const str = new TextDecoder().decode(buffer); // This string is 1GiB in size unless optimized
Fr einen leeren String ist length 0.
Die statische Eigenschaft String.length steht in keinem Zusammenhang mit der Lnge von Strings. Sie ist die Arity der String Funktion (im Wesentlichen die Anzahl der formalen Parameter), die 1 betrgt.
Da length Code-Einheiten statt Zeichen zhlt, knnen Sie, wenn Sie die Anzahl der Zeichen erhalten mchten, den String zunchst mit seinem Iterator aufteilen, der nach Zeichen iteriert:
function getCharacterLength(str) {
// The string iterator that is used here iterates over characters,
// not mere code units
return [...str].length;
}
console.log(getCharacterLength("A\uD87E\uDC04Z")); // 3
Wenn Sie Zeichen nach Graphem-Clustern zhlen mchten, verwenden Sie Intl.Segmenter. Sie knnen zunchst den String, den Sie aufteilen mchten, an die segment()-Methode bergeben und dann ber das zurckgegebene Segments-Objekt iterieren, um die Lnge zu erhalten:
function getGraphemeCount(str) {
const segmenter = new Intl.Segmenter("en-US", { granularity: "grapheme" });
// The Segments object iterator that is used here iterates over characters in grapheme clusters,
// which may consist of multiple Unicode characters
return [...segmenter.segment(str)].length;
}
console.log(getGraphemeCount("")); // 1
const x = "Mozilla";
const empty = "";
console.log(`${x} is ${x.length} code units long`);
// Mozilla is 7 code units long
console.log(`The empty string has a length of ${empty.length}`);
// The empty string has a length of 0
const emoji = "";
console.log(emoji.length); // 2
console.log([...emoji].length); // 1
const adlam = "";
console.log(adlam.length); // 8
console.log([...adlam].length); // 4
const formula = ",0";
console.log(formula.length); // 11
console.log([...formula].length); // 9
lengthDa ein String ein primitiver Datentyp ist, hat der Versuch, einem String die length-Eigenschaft zuzuweisen, keine beobachtbaren Auswirkungen und wird im Strict mode einen Fehler auslsen.
const myString = "bluebells";
myString.length = 4;
console.log(myString); // "bluebells"
console.log(myString.length); // 9
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-properties-of-string-instances-length |
Stringanchor()at()big()blink()bold()charAt()charCodeAt()codePointAt()concat()endsWith()fixed()fontcolor()fontsize()includes()indexOf()isWellFormed()italics()lastIndexOf()link()localeCompare()match()matchAll()normalize()padEnd()padStart()repeat()replace()replaceAll()search()slice()small()split()startsWith()strike()sub()substr()substring()sup()toLocaleLowerCase()toLocaleUpperCase()toLowerCase()toString()toUpperCase()toWellFormed()trim()trimEnd()trimStart()valueOf()[Symbol.iterator]()Object/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |