String.prototype.charCodeAt / codePointAt în JavaScript

Șiruri de caractere Toate browserele (codePointAt: ES2015)

Returnează codul numeric (Unicode) al caracterului de la o poziție.

Sintaxă
sir.charCodeAt(indice)
sir.codePointAt(indice)

Ce face String.prototype.charCodeAt / codePointAt

Fiecare caracter are un cod numeric în standardul Unicode: „A” este 65, „a” este 97, „ș” este 537. charCodeAt returnează codul unității de pe poziția dată (un număr între 0 și 65535).

Caracterele mai rare, cum sunt emoji-urile, ocupă două unități (o pereche surogat). Pentru ele, charCodeAt dă doar prima jumătate, iar codePointAt dă codul complet al caracterului.

Dacă poziția nu există, charCodeAt returnează NaN, iar codePointAt returnează undefined.

Parametri

Parametru Descriere
indice Poziția caracterului. Implicit 0.

Ce returnează

Un număr (codul caracterului).

Exemple

Exemplul 1: Codurile unor litere

console.log("A".charCodeAt(0));
console.log("a".charCodeAt(0));
console.log("ș".charCodeAt(0));
console.log("abc".charCodeAt(5));

Rezultat

65
97
537
NaN

Exemplul 2: Emoji: charCodeAt față de codePointAt

const inima = "❤️";
const racheta = "🚀";

console.log(racheta.length);
console.log(racheta.charCodeAt(0));
console.log(racheta.codePointAt(0));
console.log(racheta.codePointAt(0).toString(16));
console.log(inima.codePointAt(0));

Rezultat

2
55357
128640
1f680
10084

Greșeli frecvente

  • Folosești charCodeAt pe emoji și primești un număr între 55296 și 56319 (jumătatea unei perechi surogat). Folosește codePointAt.

Comenzi înrudite