Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. String
  6. charAt()

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

View in EnglishAlways switch to English

String.prototype.charAt()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

DiecharAt()-Methode vonString-Werten gibt einen neuen String zurück, der aus der einzelnen UTF-16-Codeeinheit an dem angegebenen Index besteht.

charAt() indiziert den String immer als eine Sequenz vonUTF-16-Codeeinheiten, sodass es einzelne Surrogate zurückgeben kann. Um den vollständigen Unicode-Codepunkt an dem angegebenen Index zu erhalten, verwenden SieString.prototype.codePointAt() undString.fromCodePoint().

Probieren Sie es aus

const sentence = "The quick brown fox jumps over the lazy dog.";const index = 4;console.log(`The character at index ${index} is ${sentence.charAt(index)}`);// Expected output: "The character at index 4 is q"

Syntax

js
charAt(index)

Parameter

index

Nullbasierter Index des zurückzugebenden Zeichens.Zu einer Ganzzahl konvertiertundefined wird zu 0 konvertiert.

Rückgabewert

Ein String, der das Zeichen (genau eine UTF-16-Codeeinheit) am angegebenenindex darstellt. Wennindex außerhalb des Bereichs von0 bisstr.length - 1 liegt, gibtcharAt() einen leeren String zurück.

Beschreibung

Zeichen in einem String werden von links nach rechts indiziert. Der Index des ersten Zeichens ist0, und der Index des letzten Zeichens in einem String namensstr iststr.length - 1.

Unicode-Codepunkte liegen im Bereich von0 bis1114111 (0x10FFFF).charAt() gibt immer ein Zeichen zurück, dessen Wert kleiner als65536 ist, da die höheren Codepunkte durchein Paar von 16-Bit-Surrogat-Pseudoocharakteren dargestellt werden. Daher ist es notwendig, um ein vollständiges Zeichen mit einem Wert größer als65535 zu erhalten, nicht nurcharAt(i), sondern auchcharAt(i + 1) zu verwenden (als ob man eine Zeichenkette mit zwei Zeichen manipuliert), oder stattdessencodePointAt(i) undString.fromCodePoint() zu verwenden. Für Informationen über Unicode sieheUTF-16-Zeichen, Unicode-Codepunkte und Graphemcluster.

charAt() ist sehr ähnlich zur Verwendung derKlammernotation, um auf ein Zeichen an dem angegebenen Index zuzugreifen. Die Hauptunterschiede sind:

  • charAt() versucht,index in eine Ganzzahl zu konvertieren, während die Klammernotation dies nicht tut undindex direkt als Eigenschaftsname verwendet.
  • charAt() gibt einen leeren String zurück, wennindex außerhalb des Bereichs liegt, während die Klammernotationundefined zurückgibt.

Beispiele

Verwendung von charAt()

Das folgende Beispiel zeigt Zeichen an verschiedenen Stellen im String"Brave new world":

js
const anyString = "Brave new world";console.log(`The character at index 0   is '${anyString.charAt()}'`);// No index was provided, used 0 as defaultconsole.log(`The character at index 0   is '${anyString.charAt(0)}'`);console.log(`The character at index 1   is '${anyString.charAt(1)}'`);console.log(`The character at index 2   is '${anyString.charAt(2)}'`);console.log(`The character at index 3   is '${anyString.charAt(3)}'`);console.log(`The character at index 4   is '${anyString.charAt(4)}'`);console.log(`The character at index 999 is '${anyString.charAt(999)}'`);

Diese Zeilen zeigen Folgendes an:

The character at index 0   is 'B'The character at index 0   is 'B'The character at index 1   is 'r'The character at index 2   is 'a'The character at index 3   is 'v'The character at index 4   is 'e'The character at index 999 is ''

charAt() kann einzelne Surrogate zurückgeben, die keine gültigen Unicode-Zeichen sind.

js
const str = "𠮷𠮾";console.log(str.charAt(0)); // "\ud842", which is not a valid Unicode characterconsole.log(str.charAt(1)); // "\udfb7", which is not a valid Unicode character

Um den vollständigen Unicode-Codepunkt an dem angegebenen Index zu erhalten, verwenden Sie eine Indizierungsmethode, die nach Unicode-Codepunkten aufteilt, wieString.prototype.codePointAt() undStrings Aufspalten in ein Array von Unicode-Codepunkten.

js
const str = "𠮷𠮾";console.log(String.fromCodePoint(str.codePointAt(0))); // "𠮷"console.log([...str][0]); // "𠮷"

Hinweis:Vermeiden Sie es, die obigen Lösungen unter Verwendung voncharAt() neu zu implementieren. Die Erkennung einzelner Surrogate und deren Paarung ist komplex, und integrierte APIs können möglicherweise leistungsfähiger sein, da sie direkt die interne Darstellung des Strings verwenden. Installieren Sie bei Bedarf ein Polyfill für die oben genannten APIs.

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.charat

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp