Après avoir pu filer un coup de main... je vais faire un petit memento sur l'indispensable usage du
debugger en Js (donc via un navigateur).
C'est quoi le debugger?
C'est pouvoir intervenir pas à pas (commande par commande) sur l'exécution d'un code traité par le navigateur.
En gros, un source c'est un empilement de commandes. L'idée, c'est de forcer le code à s'arrêter, puis à se traiter quand on lui demande.
Alors comment qu'on fait?
C'est très simple: dans le source qu'on exécute, on met le mot-clé
debugger
Vous devez être
connecté pour voir les pièces jointes.
Et on se prépare à voir ça directement dans le navigateur...
On affiche le formulaire qu'on veut analyser, et on balance la commande "CTRL+SHIFT+I" ou bien clic droit et "Inspecter"
La page se grise et on a ceci qui se présente (sous Chrome dans mon cas)
Vous devez être
connecté pour voir les pièces jointes.
En dessous (ou sur le côté) on peut voir les données se présenter comme suit avec un arrêt sur la ligne du "debugger"
Vous devez être
connecté pour voir les pièces jointes.
Là? L'intérêt c'est de pouvoir exécuter pas à pas (ligne à ligne pour simplifier) les commandes et voir où ça se plante Mieux, chaque ligne si elle est bien alimentée affiche en complément le contenu des variables.
Le Top?
Vous devez être
connecté pour voir les pièces jointes.
Là on a la variable "type" sur l'onglet "Sources"
Ensuite on va sur l'onglet "Console"
Vous devez être
connecté pour voir les pièces jointes.
La console restitue en autocomplétion la saisie . Là j'ai tapé type et la menu comme suit se présente
Vous devez être
connecté pour voir les pièces jointes.
donc on peut à la volée voir le contenu de la variable et même aller loin (conversion à la volée de données, formatage...)
Avec cela, l'avantage est que la commande debugger ne bloque pas l'exécution si l'inspection n'est pas affiché. Cela ne se présente et se bloque qu'au moment où l'inspecteur de code est activé.
NOTA: pensez bien à l'enlever dans le code final car ces commandes sont là pour l'analyse, pas pour rester en production.