Tu maîtrises les bases de JavaScript. Variables, conditions, boucles, fonctions, tableaux, manipulation du DOM : tu écris des scripts qui marchent. Et puis un jour tu colles un appel de fonction dans un setTimeout, ou tu passes une méthode en callback, et soudain this ne pointe plus vers ce que tu croyais. La valeur est undefined, ou pire, c'est l'objet window tout entier. Tu ajoutes des .bind() au hasard jusqu'à ce que ça remarche, sans vraiment savoir pourquoi.
C'est le moment précis où finissent les bases et où commence le niveau au-dessus. Ce n'est pas une question de connaître plus de fonctions : c'est une question de comprendre comment le langage fonctionne réellement sous le capot. Voici l'ordre dans lequel je conseille d'aborder cette montée en compétence, après des années de JavaScript et à voir des devs buter exactement sur les mêmes marches.
Ce qui sépare les bases du niveau au-dessus
Aux bases, tu utilises le langage. Au niveau au-dessus, tu comprends le langage. La différence n'est pas cosmétique. Un débutant écrit du code qui marche par accident ; un dev confirmé sait pourquoi il marche, et donc pourquoi il casse.
Trois choses changent tout. D'abord, structurer son code : ne plus empiler des fonctions dans un seul fichier, mais penser en objets, en modules, en responsabilités séparées. Ensuite, comprendre le modèle objet de JavaScript, qui n'est pas celui des autres langages : pas de vraies classes au départ, mais des prototypes, et un this dont la valeur dépend de comment la fonction est appelée, pas de où elle est écrite. Enfin, exploiter ce que le navigateur offre vraiment : géolocalisation, notifications, presse-papier, temps réel, dessin. Des capacités que la plupart des débutants ignorent.







