String : méthode statique fromCodePoint()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2015.
La méthode statique String.fromCodePoint() retourne une chaîne de caractères créée à partir de la séquence définie de points de code.
Exemple interactif
console.log(String.fromCodePoint(9731, 9733, 9842, 0x2f804));
// Résultat attendu : "☃★♲你"
Syntaxe
String.fromCodePoint()
String.fromCodePoint(num1)
String.fromCodePoint(num1, num2)
String.fromCodePoint(num1, num2, /* …, */ numN)
Paramètres
num1, …,numN-
Un entier compris entre
0et0x10FFFF(inclus) représentant un point de code Unicode.
Valeur de retour
Une chaîne de caractères créée à partir de la séquence de points de code définie.
Exceptions
RangeError-
Levée si
numNn'est pas un entier, est inférieur à0ou est supérieur à0x10FFFFaprès conversion en nombre.
Description
Étant donné que fromCodePoint() est une méthode statique de String, vous l'utilisez toujours sous la forme String.fromCodePoint(), plutôt qu'en tant que méthode d'une valeur String que vous avez créée.
Les points de code Unicode vont de 0 à 1114111 (0x10FFFF). En UTF-16, chaque indice de chaîne de caractères est une unité de code dont la valeur est comprise entre 0 et 65535. Les points de code supérieurs sont représentés par une paire de pseudo-caractères substituts de 16 bits. Par conséquent, fromCodePoint() peut retourner une chaîne de caractères dont la length (en unités de code UTF-16) est supérieure au nombre d'arguments passés. Pour plus d'informations sur Unicode, voir Caractères UTF-16, points de code Unicode et groupes de graphèmes.
Exemples
>Utiliser la méthode fromCodePoint()
Entrées valides :
String.fromCodePoint(42); // "*"
String.fromCodePoint(65, 90); // "AZ"
String.fromCodePoint(0x404); // "\u0404" === "Є"
String.fromCodePoint(0x2f804); // "\uD87E\uDC04"
String.fromCodePoint(194564); // "\uD87E\uDC04"
String.fromCodePoint(0x1d306, 0x61, 0x1d307); // "\uD834\uDF06a\uD834\uDF07"
Entrée invalide :
String.fromCodePoint("_"); // RangeError
String.fromCodePoint(Infinity); // RangeError
String.fromCodePoint(-1); // RangeError
String.fromCodePoint(3.14); // RangeError
String.fromCodePoint(3e-2); // RangeError
String.fromCodePoint(NaN); // RangeError
Comparer avec fromCharCode()
String.fromCharCode() ne peut pas retourner les caractères supplémentaires (c'est-à-dire les points de code 0x010000 à 0x10FFFF) en définissant leur point de code. Il nécessite plutôt la paire de substituts UTF-16 afin de retourner un caractère supplémentaire :
String.fromCharCode(0xd83c, 0xdf03); // Code Point U+1F303 "Nuit avec
String.fromCharCode(55356, 57091); // étoiles" === "\uD83C\uDF03"
String.fromCodePoint(), en revanche, peut retourner les caractères supplémentaires sur 4 octets, ainsi que les caractères BMP plus courants sur 2 octets, en définissant leur point de code (ce qui équivaut à l'unité de code UTF-32) :
String.fromCodePoint(0x1f303); // ou 127747 en décimal
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.fromcodepoint> |
Compatibilité des navigateurs
Voir aussi
- La prothèse d'émulation (polyfill en anglais) de
String.fromCodePointdanscore-js(angl.) - La prothèse d'émulation (polyfill en anglais) es-shims de
String.fromCodePoint(angl.) - La méthode statique
String.fromCharCode() - La méthode
String.prototype.charAt() - La méthode
String.prototype.codePointAt() - La méthode
String.prototype.charCodeAt()