String en JavaScript : manipuler du texte sans le modifier

Une String représente du texte en JavaScript. Elle est immuable : chaque méthode renvoie une nouvelle chaîne au lieu de changer l'originale.
3 min de lecture
Believemy logo

Tout ce qui vient de l'extérieur d'un programme arrive en texte. Un champ de formulaire, un paramètre d'URL, une réponse d'API brute : la chaîne de caractères est le format d'entrée par défaut, et savoir la découper proprement fait gagner beaucoup de temps.

Une propriété la distingue de la plupart des autres structures : elle ne se modifie jamais. Chaque méthode renvoie une nouvelle chaîne, ce qui a des conséquences pratiques immédiates.


Définition

Une String est une suite de caractères, écrite entre guillemets simples, doubles ou entre accents graves. Les trois formes produisent le même type, seuls les accents graves autorisent l'interpolation de variables.

JAVASCRIPT
const titre = "  JavaScript pour le web  ";

console.log(titre.length);            // 26, espaces compris
console.log(titre.trim());            // "JavaScript pour le web"
console.log(titre.includes("web"));   // true
console.log(titre.trim().toUpperCase());

const restant = 3;
console.log(`Il reste ${restant} places`);  // "Il reste 3 places"

Les méthodes s'enchaînent parce que chacune renvoie une chaîne, ce qui permet de lire une transformation de gauche à droite dans l'ordre où elle se produit.


Les méthodes qui reviennent tous les jours

MéthodeCe qu'elle fait
trim()Retire les espaces au début et à la fin
split(separateur)Découpe en Array (tableau)
replace(a, b)Remplace la première occurrence
slice(debut, fin)Extrait une portion
includes(texte)Répond par oui ou non
padStart(n, car)Complète à gauche, utile pour les heures
JAVASCRIPT
console.log("a,b,c".split(","));        // ["a", "b", "c"]
console.log("Bonjour".slice(0, 3));     // "Bon"
console.log("prix : 49".replace("49", "59"));  // "prix : 59"
console.log("7".padStart(2, "0"));      // "07"
Bon à savoir

replace ne remplace que la première occurrence quand on lui passe du texte. Pour tout remplacer, utilisez replaceAll, ou une expression régulière avec RegExp.


L'immuabilité, et ce qu'elle implique

Une chaîne ne se modifie pas en place. Écrire dans un caractère par son index ne fait rien en mode habituel, et lève une erreur en mode strict, celui des modules.

JAVASCRIPT
const mot = "abc";
const autre = mot.replace("a", "z");

console.log(autre);  // "zbc"
console.log(mot);    // "abc", inchangé

La conséquence pratique est simple : le résultat d'une méthode doit toujours être récupéré. Oublier l'affectation est l'erreur la plus fréquente sur les chaînes, et elle ne produit aucun message.


Questions fréquentes

Question

Guillemets simples, doubles ou accents graves ?

Les simples et les doubles sont strictement équivalents, le choix relève de la convention d'équipe. Les accents graves ajoutent deux capacités réelles : insérer une variable directement dans le texte, et écrire une chaîne sur plusieurs lignes. C'est aujourd'hui la forme la plus utilisée dès qu'il y a une variable à insérer.


Question

Pourquoi "5" + 3 donne-t-il "53" ?

Parce que l'opérateur + concatène dès qu'une des deux valeurs est une chaîne, au lieu d'additionner. Le nombre est converti en texte automatiquement. Ce comportement relève de la Coercition (conversion de type), et la parade consiste à convertir explicitement avec Number (nombre) avant tout calcul.


Question

Pourquoi certains caractères comptent-ils pour deux ?

Parce que length compte des unités de code, pas des caractères visibles. Les émojis et certains symboles occupent deux unités, donc "👍".length vaut 2. Pour compter les caractères réellement affichés, l'astuce est de convertir en tableau avec Spread (...), qui découpe correctement.

Termes connexes

Découvrez notre glossaire JavaScript

Tous les mots de JavaScript expliqués simplement : mots-clés, objets natifs, méthodes, erreurs et concepts. Définitions claires et exemples qui tournent, pour apprendre et pour se dépanner.

Partager cet article

Tu veux nous aider ? Fais un lien vers cet article sur tes réseaux ou encore mieux : sur ton site, dans un article ou dans ta newsletter.