# 🧩 JavaScript — Méthode `.slice()`
## 🔹 Description générale
La méthode **`.slice()`** permet d’extraire une portion d’un **tableau** ou d’une **chaîne de caractères**
sans modifier la donnée d’origine.
C’est une méthode **immuable**, introduite dans **ECMAScript 3 (1999)**,
et considérée comme **plus moderne et plus flexible** que `substring()`.
---
## ⚙️ Syntaxe
```js
array.slice(start, end);
string.slice(start, end);- start → Index de début (inclus)
- end → Index de fin (exclu)
- Si end est omis → la copie s’étend jusqu’à la fin
- Les index négatifs partent depuis la fin de la chaîne ou du tableau
| Caractéristique | Détail |
|---|---|
| 🔁 Immuable | Ne modifie jamais le tableau ou la chaîne originale |
| 🧩 Polyvalente | Fonctionne sur String et Array |
| 🔢 Flexible | Accepte les index négatifs |
| 🧱 Stable | Compatibilité totale avec tous les navigateurs modernes |
| ⚙️ Introduite | ECMAScript 3 (1999) |
| Méthode | Type compatible | Index négatifs | Inverse les index si start > end |
Statut |
|---|---|---|---|---|
| slice() | String + Array | ✅ Oui | ❌ Non | ✅ Recommandée |
| substring() | String uniquement | ❌ Non | ✅ Oui | Active mais ancienne |
| substr() | String uniquement | ✅ Oui | ❌ Non |
const students = ["Alice", "Bob", "Charlie", "David"];
const part = students.slice(1, 3);
console.log(part); // [ 'Bob', 'Charlie' ]
console.log(students); // [ 'Alice', 'Bob', 'Charlie', 'David' ] (inchangé)const names = ["Emma", "Lucas", "Noah", "Olivia"];
// Copie complète sans modifier l’original
const copy = names.slice();
console.log(copy); // [ 'Emma', 'Lucas', 'Noah', 'Olivia' ]
console.log(copy === names); // false → copie indépendante🧠 Astuce :
.slice() sans argument est une manière simple de cloner un tableau.
const cities = ["Paris", "Lyon", "Marseille", "Toulouse", "Nice"];
console.log(cities.slice(-2)); // [ 'Toulouse', 'Nice' ]
console.log(cities.slice(-3, -1)); // [ 'Marseille', 'Toulouse' ]const message = "JavaScript est puissant";
console.log(message.slice(0, 10)); // "JavaScript"
console.log(message.slice(-9)); // "puissant"const str = "JavaScript";
console.log(str.slice(4, 2)); // "" → rien, car start > end
console.log(str.substring(4, 2)); // "va" → inverse automatiquementconst numbers = [1, 2, 3];
const copy = numbers.slice();
copy.push(4);
console.log(numbers); // [1, 2, 3]
console.log(copy); // [1, 2, 3, 4]const text = "Bonjour le monde";
console.log(text.slice(8)); // "le monde"const scores = [12, 19, 22, 30, 41, 55];
const lastThree = scores.slice(-3);
console.log(lastThree); // [30, 41, 55]const str = "JavaScript";
Index : 0 1 2 3 4 5 6 7 8 9
Lettre: J a v a S c r i p t
str.slice(0, 4) → "Java"
str.slice(4, 10) → "Script"
str.slice(-6) → "Script"
| Utilisation | Exemple | Résultat |
|---|---|---|
| Copier tout le tableau | arr.slice() |
Copie indépendante |
| Extraire une partie | arr.slice(1, 3) |
[élément1, élément2] |
| Depuis la fin | arr.slice(-2) |
Les 2 derniers éléments |
| Sur une chaîne | "JavaScript".slice(4) |
"Script" |
🔹 Utilise
slice()par défaut. Elle est immuable, polyvalente (tableaux + chaînes), et plus sûre quesubstring()ousubstr()qui est déprécié.
📘 Résumé court :
slice()= simple, propre, et universelle. → La méthode à retenir pour copier, découper ou extraire sans risque.