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
Sur cette page

Exemple

#
JavaScript
const course = 'Python'

console.log(course.charAt(0))
console.log(course.charAt(3))
console.log(course.charAt(10) === '')
console.log(course[10])
Console
P
h
true
undefined

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

#
Syntaxe
string.charAt()
string.charAt(index)

Paramètres

#
  • index

    number, optionnel

    Position du caractère, depuis 0. Par défaut 0. Une valeur hors plage donne une chaîne vide.

Plus d’exemples

#
Une première lettre en majuscule, en toute sécurité
JavaScript
function capitalize(text) {
  return text.charAt(0).toUpperCase() + text.slice(1)
}

console.log(capitalize('exercice'))
console.log(capitalize('').length)
Console
Exercice
0

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.

Initiales à partir d’un prénom et d’un nom
JavaScript
const fullName = 'Julie Martin'
const initials = fullName
  .split(' ')
  .map((part) => part.charAt(0))
  .join('')

console.log(initials)
Console
JM

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] ou at(i) sont plus souvent utilisés pour un caractère isolé. Choisissez charAt() quand vous préférez obtenir "" plutôt que undefined hors 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() et codePointAt().

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.