Strings & Template Literals
Les chaînes de caractères (strings) sont omniprésentes en JavaScript. Voyons comment les manipuler efficacement.
Strings basiques
Création de strings
Trois façons de créer des strings :
const simple = 'Hello'; // Guillemets simples
const double = "World"; // Guillemets doubles
const template = `Bonjour`; // Backticks (template literals)
Astuce
- Utilisez simple ou double pour les strings simples
- Utilisez backticks pour l'interpolation (voir plus bas)
- Soyez cohérent dans votre code (choisissez un style)
Échappement de caractères
const quote = 'L\'important c\'est d\'essayer';
const path = "C:\\Users\\Documents";
const multiline = "Ligne 1\nLigne 2";
Template Literals
La syntaxe pour insérer des variables dans les strings
Les template literals utilisent des backticks (`) et permettent :
- L'interpolation de variables
- Les expressions JavaScript
- Les strings multi-lignes
Interpolation de variables
const name = 'Alice';
const age = 25;
// ❌ Ancien style (concaténation)
const message1 = 'Hello ' + name + ', you are ' + age + ' years old';
// ✅ Avec template literals
const message2 = `Hello ${name}, you are ${age} years old`;
console.log(message2); // "Hello Alice, you are 25 years old"
Avantages
- Plus lisible
- Moins d'erreurs (pas d'oubli de
+) - Plus facile à maintenir
Expressions dans les template literals
Vous pouvez mettre n'importe quelle expression JavaScript dans ${} :
const price = 100;
const quantity = 3;
const tax = 0.2;
console.log(`Total: ${price * quantity} EUR`);
// "Total: 300 EUR"
console.log(`Total TTC: ${price * quantity * (1 + tax)} EUR`);
// "Total TTC: 360 EUR"
// Opérateur ternaire
const age = 25;
console.log(`Statut: ${age >= 18 ? 'Adulte' : 'Mineur'}`);
// "Statut: Adulte"
// Appel de fonction
const getName = () => 'Bob';
console.log(`Utilisateur: ${getName()}`);
// "Utilisateur: Bob"
Strings multi-lignes
Les template literals permettent d'écrire des strings sur plusieurs lignes sans échappement.
const user = {
name: 'Alice',
email: 'alice@example.com'
};
const message = `
Bonjour ${user.name},
Votre compte a été créé avec succès.
Informations du compte :
- Nom : ${user.name}
- Email : ${user.email}
Cordialement,
L'équipe
`;
console.log(message);
Quelle est la syntaxe recommandée pour insérer des variables dans une chaîne de caractères ?
Méthodes de strings
JavaScript fournit de nombreuses méthodes pour manipuler les strings.
Pas besoin de tout mémoriser !
Vous n'avez pas besoin d'apprendre toutes ces méthodes par cœur. L'important est de savoir qu'elles existent.
Quand vous avez besoin de manipuler un string (découper, transformer en majuscules, chercher un mot, etc.), demandez-vous : "Cette opération existe-t-elle déjà ?". La réponse est presque toujours oui !
Consultez la documentation (MDN) ou demandez à l'IA plutôt que de recoder une fonction qui existe déjà.
Les strings sont immuables
Important : En JavaScript, les strings sont immuables - elles ne peuvent pas être modifiées.
const text = 'Hello';
// ❌ Ceci ne fonctionne PAS (pas d'erreur, mais n'a aucun effet)
text[0] = 'J';
console.log(text); // Toujours "Hello"
// ✅ Pour "modifier" un string, créez-en un nouveau
const newText = 'J' + text.slice(1);
console.log(newText); // "Jello"
// ✅ Ou utilisez les méthodes qui retournent une nouvelle string
const replaced = text.replace('H', 'J');
console.log(replaced); // "Jello"
Toutes les méthodes de string retournent une nouvelle string sans modifier l'originale.
Longueur
const text = 'Hello';
console.log(text.length); // 5
Majuscules / Minuscules
const text = 'Hello World';
console.log(text.toUpperCase()); // "HELLO WORLD"
console.log(text.toLowerCase()); // "hello world"
Recherche
const text = 'Hello World';
console.log(text.includes('World')); // true
console.log(text.startsWith('Hello')); // true
console.log(text.endsWith('World')); // true
console.log(text.indexOf('o')); // 4 (première occurrence)
Extraction
const text = 'Hello World';
// Caractère à l'index
console.log(text[0]); // 'H'
console.log(text.charAt(0)); // 'H'
// Sous-chaîne
console.log(text.slice(0, 5)); // 'Hello'
console.log(text.slice(6)); // 'World'
console.log(text.substring(0, 5)); // 'Hello'
Remplacement
const text = 'Hello World';
console.log(text.replace('World', 'JavaScript'));
// "Hello JavaScript"
console.log(text.replaceAll('o', '0'));
// "Hell0 W0rld"
Découpage
const text = 'pomme,banane,orange';
const fruits = text.split(',');
console.log(fruits); // ['pomme', 'banane', 'orange']
// Fusionner un tableau en string
const joined = fruits.join(' - ');
console.log(joined); // "pomme - banane - orange"
Suppression des espaces
const text = ' Hello World ';
console.log(text.trim()); // "Hello World"
console.log(text.trimStart()); // "Hello World "
console.log(text.trimEnd()); // " Hello World"
Que se passe-t-il avec ce code : const str = 'Hello'; str[0] = 'J'; ?
Cas d'usage pratiques
URL dynamique
const userId = 123;
const endpoint = `https://api.example.com/users/${userId}`;
fetch(endpoint)
.then(response => response.json())
.then(user => console.log(user));
Formatage de dates
const day = 14;
const month = 'Janvier';
const year = 2026;
const date = `${day} ${month} ${year}`;
console.log(date); // "14 Janvier 2026"
Messages dynamiques
const errors = ['Email requis', 'Mot de passe trop court'];
if (errors.length > 0) {
const message = `${errors.length} erreur(s) détectée(s) : ${errors.join(', ')}`;
console.log(message);
// "2 erreur(s) détectée(s) : Email requis, Mot de passe trop court"
}
Que retourne : '5' + 3 + 2 ?
Exercice rapide
Exercice : Manipulation de strings
Avec cet objet utilisateur :
const user = {
firstName: 'Alice',
lastName: 'Martin',
age: 25,
city: 'Paris'
};Utilisez les template literals et les méthodes de strings pour créer :
- Le nom complet :
"Alice Martin" - Un message de bienvenue :
"Bienvenue Alice, vous avez 25 ans." - Les initiales en majuscules :
"AM" - Un email :
"alice.martin@example.com"