JavaScript Brain Teasers
JavaScript Brain Teasers
Résumé :
Introduction
Le livre « JavaScript Brain Teasers » de Fr. Kinlan (2019, 200 pages) n'est pas un énième manuel sur la syntaxe ou les frameworks. C'est un recueil de problèmes-énigmes non triviaux qui vous feront voir sous un nouveau jour des constructions JavaScript pourtant familières. Contrairement aux exercices classiques de LeetCode, l'accent est mis ici sur les subtilités du langage, le comportement non évident des fermetures, des prototypes, de l'asynchronicité et du contexte this. Le livre est écrit pour l'environnement d'exécution Node.js, mais tous les exemples sont facilement reproductibles dans n'importe quel navigateur moderne.
De quoi parle le livre
« JavaScript Brain Teasers » se compose de 50 (environ) énigmes soigneusement sélectionnées. Chaque problème est présenté sous la forme d'un court fragment de code, après quoi le lecteur est invité à deviner ce que la console affichera (ou quel sera le résultat de l'exécution). Vient ensuite une analyse détaillée : pourquoi cela a fonctionné ainsi, quels mécanismes du langage sont impliqués, et comment éviter de telles « surprises » dans le développement réel. Les sujets abordés comprennent :
- Le transtypage et l'égalité non stricte (
==vs===) ; - Les fermetures et l'environnement lexical ;
- L'héritage prototypal et la chaîne de prototypes ;
- L'asynchronicité : callbacks, promesses, Event Loop ;
- Le contexte
thiset ses liaisons non évidentes ; - Le comportement de
var,let,constdans les boucles et les blocs ; - Les « pièges » du travail avec les tableaux et les objets ;
- Les particularités des opérateurs
typeof,instanceof,delete.
Pour qui est ce livre
Le livre est destiné aux développeurs JavaScript en exercice de niveau Junior+ et Middle. Les débutants qui viennent tout juste de commencer à apprendre le langage le trouveront trop difficile et peut-être démotivant. Cependant, ceux qui écrivent du code JavaScript depuis au moins six mois à un an y trouveront un matériel inestimable pour approfondir leur compréhension. Le livre sera également utile à ceux qui se préparent à des entretiens techniques : de nombreux problèmes ressemblent beaucoup aux « questions pièges » des entretiens dans les grandes entreprises informatiques.
Ce que le lecteur apprendra
En travaillant sur toutes les énigmes, le lecteur :
- Cessera de craindre le transtypage implicite et apprendra à prédire ses résultats ;
- Comprendra en profondeur le mécanisme de fonctionnement de
thisdans divers contextes (global, méthode d'objet, constructeur, fonction fléchée) ; - Maîtrisera les nuances du fonctionnement de l'Event Loop et de la file d'attente des micro-tâches ;
- Apprendra à distinguer les vrais problèmes des particularités « bruyantes » du langage ;
- Sera capable d'écrire un code plus fiable et prévisible, en évitant les pièges courants ;
- Améliorera sa capacité à lire le code des autres et à trouver des erreurs cachées.
Points forts
Le principal atout du livre est son format. Au lieu d'une théorie ennuyeuse, vous bénéficiez d'une expérience interactive : vous lisez le code, faites une hypothèse, vous vérifiez, lisez l'explication. C'est très efficace pour la mémorisation. L'auteur ne se contente pas de montrer de la « magie », il explique les mécanismes internes en se référant à la spécification ECMAScript. Un autre avantage est la compacité : 200 pages sans fioritures, seulement l'essentiel. Le livre est bien structuré : des problèmes simples aux plus complexes, avec une profondeur croissante. Il convient de noter séparément que tous les exemples sont pertinents pour la norme moderne ES6+ (bien que le livre soit sorti en 2019, les concepts principaux n'ont pas vieilli).
À qui est-il recommandé
Je recommande « JavaScript Brain Teasers » à tous ceux qui veulent passer du niveau « j'écris juste du code » au niveau « je comprends comment fonctionne le langage ». C'est un excellent exercice pour l'esprit, que l'on peut lire par à-coups — une ou deux énigmes par jour. Le livre sera également un bon cadeau pour un collègue développeur qui aime résoudre des énigmes. Si vous enseignez JavaScript, vous pouvez utiliser les problèmes du livre comme échauffement en début de cours. La seule limite : il ne faut pas le donner aux débutants absolus — il vaut mieux d'abord maîtriser les bases avec un manuel classique (par exemple, « JavaScript : The Good Parts »).