String. prototype. charAt()
Renvoie le caractère à l’indice donné. Hors de la plage valide, elle renvoie une chaîne vide au lieu de undefined.
- Renvoie
- Une chaîne d’un caractère (une unité UTF-16), ou une chaîne vide
""quand l’indice est hors plage. - Modifie l’original
- Non
Exemple
#const course = 'Python'
console.log(course.charAt(0))
console.log(course.charAt(3))
console.log(course.charAt(10) === '')
console.log(course[10])Définition et utilisation
#La méthode charAt() renvoie une chaîne d’un seul caractère à la position indiquée, comptée depuis 0. Sans argument, elle renvoie le premier caractère. C’est l’une des plus anciennes méthodes de chaînes, fonctionnant même dans de très vieux navigateurs.
Elle diffère des crochets par son comportement hors de la plage valide : text.charAt(100) renvoie une chaîne vide "", tandis que text[100] renvoie undefined. Les indices négatifs ne sont pas non plus pris en charge et donnent également une chaîne vide ; pour compter depuis la fin, utilisez at().
Obtenir une chaîne vide en retour peut être pratique, car vous pouvez aussitôt enchaîner d’autres méthodes, comme charAt(0).toUpperCase(), sans risquer d’erreur sur un texte vide. La méthode travaille en unités UTF-16, donc avec un emoji elle n’en renvoie que la moitié.
Syntaxe
#string.charAt()
string.charAt(index)Paramètres
#index
number, optionnel
Position du caractère, depuis0. Par défaut0. Une valeur hors plage donne une chaîne vide.
Plus d’exemples
#function capitalize(text) {
return text.charAt(0).toUpperCase() + text.slice(1)
}
console.log(capitalize('exercice'))
console.log(capitalize('').length)Pour une chaîne vide, text[0] donnerait undefined, et appeler undefined.toUpperCase() lèverait une erreur. charAt(0) renvoie "", donc la fonction fonctionne toujours.
const fullName = 'Julie Martin'
const initials = fullName
.split(' ')
.map((part) => part.charAt(0))
.join('')
console.log(initials)Compatibilité des navigateurs
#Largement disponible
Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.
- Chrome
- Edge
- Firefox
- Safari
Bonnes pratiques
#- Dans du code neuf,
text[i]ouat(i)sont plus souvent utilisés pour un caractère isolé. ChoisissezcharAt()quand vous préférez obtenir""plutôt queundefinedhors de la plage valide. - Le code numérique d’un caractère, par exemple pour vérifier s’il s’agit d’un chiffre, est renvoyé par
charCodeAt()etcodePointAt().
Entrées associées
#- String.prototype.at()Renvoie le caractère à l’indice donné. Les indices négatifs se comptent depuis la fin, donc at(-1) est le dernier caractère.
- String.prototype.slice()Renvoie un fragment de la chaîne entre un indice de départ et un indice de fin (exclu). Prend en charge les indices négatifs.
- String.prototype.toUpperCase()Renvoie une copie de la chaîne convertie en majuscules. Gère correctement les lettres accentuées.
- String.prototype.indexOf()Renvoie l’indice de la première occurrence du texte donné dans une chaîne, ou -1 s’il est absent.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.