Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
String.prototype.codePointAt()
Baseline Widely available
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éthodecodePointAt() renvoie un entier positif qui correspond au code Unicode (code point) du caractère de la chaîne à la position donnée.
Dans cet article
Exemple interactif
const icons = "☃★♲";console.log(icons.codePointAt(1));// Expected output: "9733"Syntaxe
str.codePointAt(pos);Paramètres
posLa position de l'élément dans la chaîne de caractères dont on souhaite obtenir la valeur du codet.
Valeur de retour
Un nombre qui représente la valeur du point de code du caractère à la position indiqué. C'est la valeurundefined qui est renvoyée s'il n'y aucun élément àpos.
Description
S'il n'y a pas d'élément à la position donnée, la valeur renvoyée seraundefined. Si ce n'est pas un élément représenté sur deux demi-codets (surrogate pair) UTF-16 et qui commence àpos, le codet de l'élément à l'indicepos est renvoyé.
Exemples
"ABC".codePointAt(1); // 66"\uD800\uDC00".codePointAt(0); // 65536"XYZ".codePointAt(42); // undefinedProthèse d'émulation (polyfill)
Le fragment de code suivant permet d'ajouter la méthodecodePointAt() pour les chaînes de caractères (String). En effet, cette méthode fait partie de ECMAScript 2015 et certains navigateurs peuvent ne pas proposer cette fonction nativement.
/*! https://mths.be/codepointat v0.2.0 by @mathias */if (!String.prototype.codePointAt) { (function () { "use strict"; // needed to support `apply`/`call` with `undefined`/`null` var defineProperty = (function () { // IE 8 only supports `Object.defineProperty` on DOM elements try { var object = {}; var $defineProperty = Object.defineProperty; var result = $defineProperty(object, object, object) && $defineProperty; } catch (error) {} return result; })(); var codePointAt = function (position) { if (this == null) { throw TypeError(); } var string = String(this); var size = string.length; // `ToInteger` var index = position ? Number(position) : 0; if (index != index) { // better `isNaN` index = 0; } // Account for out-of-bounds indices: if (index < 0 || index >= size) { return undefined; } // Get the first code unit var first = string.charCodeAt(index); var second; if ( // check if it’s the start of a surrogate pair first >= 0xd800 && first <= 0xdbff && // high surrogate size > index + 1 // there is a next code unit ) { second = string.charCodeAt(index + 1); if (second >= 0xdc00 && second <= 0xdfff) { // low surrogate // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae return (first - 0xd800) * 0x400 + second - 0xdc00 + 0x10000; } } return first; }; if (defineProperty) { defineProperty(String.prototype, "codePointAt", { value: codePointAt, configurable: true, writable: true, }); } else { String.prototype.codePointAt = codePointAt; } })();}Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.codepointat> |