[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/String/length [Back]  [Original]

String: length - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

String: length

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.

Die length Eigenschaft eines String Wertes enthlt die Lnge des Strings in UTF-16 Codeeinheiten.

In diesem Artikel

Probieren Sie es aus

const str = "Life, the universe and everything. Answer:";

console.log(`${str} ${str.length}`);
// Expected output: "Life, the universe and everything. Answer: 42"

Wert

Eine nicht-negative ganze Zahl.

Eigenschaften von String: length
Schreibbarnein
Aufzhlbarnein
Konfigurierbarnein

Beschreibung

Diese Eigenschaft gibt die Anzahl der Codeeinheiten im String zurck. JavaScript verwendet die UTF-16 Kodierung, wobei jedes Unicode-Zeichen als eine oder zwei Codeeinheiten kodiert werden kann. Daher kann es vorkommen, dass der von length zurckgegebene Wert nicht mit der tatschlichen Anzahl der Unicode-Zeichen im String bereinstimmt. Bei gngigen Schriftarten wie Latein, Kyrillisch, bekannten CJK-Zeichen usw. sollte dies kein Problem darstellen, aber wenn Sie mit bestimmten Schriftarten arbeiten, wie Emojis, mathematischen Symbolen oder seltenen chinesischen Zeichen, mssen Sie mglicherweise den Unterschied zwischen Codeeinheiten und Zeichen bercksichtigen.

Die Sprachspezifikation verlangt, dass Strings eine maximale Lnge von 253 - 1 Elementen haben, was die Obergrenze fr przise Ganzzahlen darstellt. Ein String mit dieser Lnge wrde jedoch 16384TiB Speicher bentigen, was in kein vernnftiges Gertespeicher passt, daher tendieren Implementierungen dazu, die Grenze zu senken, was erlaubt, dass die Lnge des Strings in einer 32-Bit-Ganzzahl bequem gespeichert werden kann.

  • In V8 (verwendet von Chrome und Node) betrgt die maximale Lnge 229 - 24 (~1GiB). Auf 32-Bit-Systemen betrgt die maximale Lnge 228 - 16 (~512MiB).
  • In Firefox betrgt die maximale Lnge 230 - 2 (~2GiB). Vor Firefox 65 betrug die maximale Lnge 228 - 1 (~512MiB).
  • In Safari betrgt die maximale Lnge 231 - 1 (~4GiB).

Wenn Sie mit groen Strings in anderen Kodierungen (wie UTF-8-Dateien oder Blobs) arbeiten, beachten Sie, dass beim Laden der Daten in einen JS-String die Kodierung immer UTF-16 wird. Die Gre des Strings kann sich von der Gre der Quelldatei unterscheiden.

js
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

Fr einen leeren String ist length 0.

Die statische Eigenschaft String.length ist nicht mit der Lnge von Strings verwandt. Sie ist die Arity der String Funktion (grob gesagt, die Anzahl ihrer formalen Parameter) und betrgt 1.

Da length Codeeinheiten anstelle von Zeichen zhlt, knnen Sie, wenn Sie die Anzahl der Zeichen erhalten mchten, zuerst den String mit seinem Iterator aufteilen, der zeichenweise iteriert:

js
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 Grapheme-Clustern zhlen mchten, verwenden Sie Intl.Segmenter. Sie knnen zuerst den String, den Sie aufteilen mchten, an die segment() Methode bergeben und dann ber das zurckgegebene Segments Objekt iterieren, um die Lnge zu ermitteln:

js
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

Beispiele

Grundlegende Verwendung

js
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

Strings mit einer Lnge, die nicht der Anzahl der Zeichen entspricht

js
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

Zuordnung zur Lnge

Da String ein primitiver Datentyp ist, hat der Versuch, einen Wert der length-Eigenschaft eines Strings zuzuweisen, keine beobachtbare Wirkung und wird im Strict Mode einen Fehler werfen.

js
const myString = "bluebells";

myString.length = 4;
console.log(myString); // "bluebells"
console.log(myString.length); // 9

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-properties-of-string-instances-length

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page