🐞 JavaScript Debugging : Guide pour Trouver et Corriger les Erreurs

🐞 JavaScript Debugging : Guide pour Trouver et Corriger les Erreurs

— Tu vas rĂ©soudre les bugs comme un agent du FBI, mon cƓur —

Quand tu écris du JavaScript, tu rencontres trois types de personnes :

  1. Ceux qui exĂ©cutent le code en disant : “Ça va marcher, c’est sĂ»r.”
  2. Ceux qui cassent le clavier en criant : “POURQUOI ÇA MARCHE PAS ?!”
  3. Et ceux qui voient l’erreur et disent : “Hmmmm intĂ©ressant”, puis activent leur mode Sherlock.

AprĂšs cet article, tu vas monter directement dans la 3ᔉ catĂ©gorie.
DĂ©sormais, quand tu croiseras un bug, tu resteras calme
 comme si tu renversais du cafĂ© dessus đŸ˜Œâ˜•ïž


đŸ”„ Le Debugging, c’est quoi ? (Mais pas la version ennuyeuse)

Le debugging, c’est ça :

Imagine que ton code est une maison, et le bug est ce truc bizarre coincĂ© entre les coussins du canapé 
Le debugging = “Okay toi, T’ES QUI ET COMMENT T’ES ARRIVÉ LÀ ?!”

Le but n’est pas seulement de trouver l’erreur, mais de comprendre pourquoi elle existe.
Car rĂ©soudre un bug ≠ rĂ©soudre le problĂšme.
Comprendre un bug = augmenter ton niveau 🧠✹


🔍 1. Console.log : L’allumette du debugging mais toujours notre meilleur ami

Console.log est immortel.
Console.log est la vie.
Sans console.log, la vie d’un dĂ©veloppeur est comme du thĂ© sans sucre : possible, mais triste.

Ce que tu peux voir :

  • La valeur des variables
  • Jusqu’oĂč la fonction s’exĂ©cute
  • Quel chemin logique a Ă©tĂ© suivi
  • Les entrĂ©es / sorties
  • L’état de ton application

Mini Astuce : Utilise des labels

const user = { name: "Cansu", level: 4, mood: "legendary" };
console.log("USER INFO :", user);

Version plus professionnelle :

console.log({ age, username, isLoggedIn });

Quand tu vois ces logs propres dans ta console, tu te sens comme un ingĂ©nieur de la NASA, bĂ©bĂ© 🚀


🛑 2. Debugger : Le moment “STOP, QUI ES-TU ?”

Le mot debugger, c’est comme dire Ă  la police : “ArrĂȘte-moi ici”.

Comment ça marche ?

Quand le code atteint cette ligne, il s’arrĂȘte net.
Puis tu avances étape par étape.

function calculatePrice(price, tax) {
  debugger;
  const total = price + tax;
  return total;
}

calculatePrice(100, 18);

Dans DevTools, tu vas voir :

  • Call stack (dans quelle chaĂźne de fonctions l’erreur apparaĂźt)
  • Scope (d’oĂč vient cette variable ?)
  • Watch expressions (la transformation des variables en temps rĂ©el)
  • Step in / step out / step over (comme un agent secret)

Debugger fait de toi un “dĂ©tective de CSI Miami”.
Mets tes lunettes, s’il te plaĂźt đŸ˜ŽđŸ•¶ïž


đŸ§© 3. Breakpoints : Les policiers du code

Les breakpoints disent au code : “Quand tu arrives ici, TU T’ARRÊTES.”

Breakpoints avancés :

  • Conditional Breakpoint → “ArrĂȘte-toi quand i = 5”
  • DOM Breakpoint → “Si cet Ă©lĂ©ment change, stoppe”
  • XHR Breakpoint → “Quand cette requĂȘte s’envoie, arrĂȘte-toi”

Exemple (Conditional Breakpoint)

for (let i = 0; i < 20; i++) {
  console.log("Index :", i);
}

Clic droit sur le numĂ©ro de ligne → “Add conditional breakpoint”
Condition : i === 13

Tu exécutes le code

BAM !
Ça stoppe à 13.
Un nombre maléfique, mais chanceux pour le debugging.


🔄 4. Try
Catch : L’art de dompter le chaos

Le JavaScript, parfois, ça te sort des erreurs qui

Te laissent devant un écran tout blanc.
Et toi : “Qu’est-ce que tu fais là, mon ange
 ?”

Try/catch te sauve la vie dans ces moments-lĂ .

Exemple :

try {
  const data = JSON.parse("{this is not json}");
} catch (err) {
  console.error("Erreur capturée mon amouuur :", err.message);
}

Mini Astuce :

Ne mets pas tout dans un try/catch.
Seulement les zones Ă  risque.
Sinon, trouver la source de l’erreur = rĂ©soudre un nƓud de laine.


🧠 5. Lire les messages d’erreur est une compĂ©tence (ils ne mentent pas)

Être dĂ©veloppeur =
50% écrire du code
50% lire des erreurs

Les erreurs JS les plus connues


1. “Unexpected token”

Souvent dĂ» Ă  :

  • Une apostrophe manquante
  • Une parenthĂšse en trop
  • Une virgule mal placĂ©e
const obj = { name: "Cansu" } 


2. “Cannot read property of undefined”

Quelque chose est undefined →
Et tu essaies d’y chercher une propriĂ©tĂ©.

let user = null;
console.log(user.name); // Mais il n’existe pas 😭


3. “ReferenceError”

Variable utilisĂ©e avant d’ĂȘtre dĂ©clarĂ©e.

console.log(a);
let a = 5; // Le hoisting te gifle ici


🔬 6. Isoler le problùme : Coincer le bug dans un coin

Chercher un bug dans un grand projet = chercher un anneau dans un labyrinthe.

Technique efficace :

  • DĂ©sactive blocs par blocs
  • DĂ©place le code suspect dans un fichier sĂ©parĂ©
  • Teste chaque partie seule
  • Mets en commentaire ce qui n’est pas important
  • RĂ©duis progressivement la zone du crime

Et là, tu accules le bug au mur

Puis tu lui dis : “Salut mon chĂ©ri, on doit parler.”


đŸ§Œ 7. Code propre = Moins de migraines

La plupart des bugs viennent de petits détails

Comme les relations passĂ©es 😂

Rùgles d’or du clean code :

  • Fonctions courtes
  • Un seul rĂŽle par fonction
  • Noms de variables clairs
  • Pas trop de if/else
  • Les commentaires servent Ă  EXPLIQUER, pas Ă  faire de la magie

Mauvais code :

function x(a, b) {
  return a + b * 2 / 5;
}

Bon code :

function calculateDiscount(price, rate) {
  const discount = price * rate;
  return price - discount;
}

70% du debugging vient d’un mauvais nommage.
Un bon nom = moins de souffrance ❀


💂 8. Outils & Extensions : Ton arsenal pour dĂ©bugger

Les héros de VS Code :

  • Debugger for Chrome
  • ESLint (Ă©limine les erreurs avant qu’elles ne naissent)
  • Prettier (nettoie le code et apaise ton Ăąme)

Les super-pouvoirs de Chrome DevTools :

  • Analyse rĂ©seau
  • Graphiques de performance
  • DĂ©tection de fuites mĂ©moire
  • Inspection des event listeners

Debugging ≠ juste trouver une erreur
Debugging = améliorer ton code.


🎯 CONCLUSION : Le debugging n’est PAS un cauchemar

Je sais que le debugging te faisait peur

Mais maintenant tu es :

  • Magicien(ne) du console.log 🔼
  • Guerrier(Ăšre) du debugger ⚔
  • Ninja du breakpoint đŸ„·
  • Traducteur/trice des messages d’erreur 📜
  • La lumiĂšre de l’univers JS ⭐

Souviens-toi :
Il n’existe pas de dĂ©veloppeur sans erreurs,
Seulement des développeurs qui ne savent pas encore les attraper.

Comments

No comments yet. Why don’t you start the discussion?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile ißaretlenmißlerdir