Movatterモバイル変換


[0]ホーム

URL:


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

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.charCodeAt()

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⁩.

DiecharCodeAt() Methode vonString-Werten gibt eine ganze Zahl zwischen0 und65535 zurück, die die UTF-16-Code-Einheit an dem angegebenen Index darstellt.

charCodeAt() indexiert den String immer als eine Sequenz vonUTF-16-Code-Einheiten, sodass es möglicherweise einzelne Surrogate zurückgibt. Um den vollständigen Unicode-Codepunkt am angegebenen Index zu erhalten, verwenden SieString.prototype.codePointAt().

Probieren Sie es aus

const sentence = "The quick brown fox jumps over the lazy dog.";const index = 4;console.log(  `Character code ${sentence.charCodeAt(index)} is equal to ${sentence.charAt(    index,  )}`,);// Expected output: "Character code 113 is equal to q"

Syntax

js
charCodeAt(index)

Parameter

index

Index des zurückzugebenden Zeichens, beginnend bei Null.In eine ganze Zahl umgewandeltundefined wird in 0 umgewandelt.

Rückgabewert

Eine ganze Zahl zwischen0 und65535, die den Wert der UTF-16-Code-Einheit des Zeichens am angegebenenindex darstellt. Wennindex außerhalb des Bereichs von0str.length - 1 liegt, gibtcharCodeAt()NaN zurück.

Beschreibung

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

Unicode-Codepunkte reichen von0 bis1114111 (0x10FFFF).charCodeAt() gibt immer einen Wert zurück, der kleiner als65536 ist, da die höheren Codepunkte durchein Paar von 16-Bit-Surrogate-Pseudo-Zeichen dargestellt werden. Daher ist es notwendig, nicht nurcharCodeAt(i), sondern auchcharCodeAt(i + 1) abzurufen (als ob ein String mit zwei Zeichen manipuliert wird), oder stattdessencodePointAt(i) zu verwenden, um ein vollständiges Zeichen mit einem Wert größer als65535 zu erhalten. Weitere Informationen zu Unicode finden Sie unterUTF-16-Zeichen, Unicode-Codepunkte und Graphem-Cluster.

Beispiele

Verwendung von charCodeAt()

Das folgende Beispiel gibt65 zurück, den Unicode-Wert für A.

js
"ABC".charCodeAt(0); // returns 65

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

js
const str = "𠮷𠮾";console.log(str.charCodeAt(0)); // 55362, or d842, which is not a valid Unicode characterconsole.log(str.charCodeAt(1)); // 57271, or dfb7, which is not a valid Unicode character

Um den vollständigen Unicode-Codepunkt am angegebenen Index zu erhalten, verwenden SieString.prototype.codePointAt().

js
const str = "𠮷𠮾";console.log(str.codePointAt(0)); // 134071

Hinweis:Vermeiden Sie es,codePointAt() mitcharCodeAt() neu zu implementieren. Die Übersetzung von UTF-16-Surrogaten zu Unicode-Codepunkten ist komplex, undcodePointAt() kann performanter sein, da es die interne Darstellung des Strings direkt verwendet. Installieren Sie ein Polyfill fürcodePointAt(), falls notwendig.

Unten ist ein mögliches Algorithmus beschrieben, um ein Paar von UTF-16-Code-Einheiten in einen Unicode-Codepunkt umzuwandeln, adaptiert von derUnicode-FAQ:

js
// constantsconst LEAD_OFFSET = 0xd800 - (0x10000 >> 10);const SURROGATE_OFFSET = 0x10000 - (0xd800 << 10) - 0xdc00;function utf16ToUnicode(lead, trail) {  return (lead << 10) + trail + SURROGATE_OFFSET;}function unicodeToUTF16(codePoint) {  const lead = LEAD_OFFSET + (codePoint >> 10);  const trail = 0xdc00 + (codePoint & 0x3ff);  return [lead, trail];}const str = "𠮷";console.log(utf16ToUnicode(str.charCodeAt(0), str.charCodeAt(1))); // 134071console.log(str.codePointAt(0)); // 134071

Spezifikationen

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

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