JavaScript Brain Teasers
JavaScript Brain Teasers
Summary:
Introduction
The book "JavaScript Brain Teasers" by Fr. Kinlan (2019, 200 pages) is not another textbook on syntax or frameworks. It is a collection of non-trivial puzzle-problems that will make you look at seemingly familiar JavaScript constructs in a new way. Unlike classic LeetCode problems, the focus here is on the subtleties of the language, the non-obvious behavior of closures, prototypes, asynchrony, and the this context. The book is written for the Node.js runtime, but all examples can be easily reproduced in any modern browser.
What the book is about
"JavaScript Brain Teasers" consists of 50 (or so) carefully selected puzzles. Each problem is presented as a short code snippet, after which the reader is asked to guess what the console will output (or what the result of execution will be). This is followed by a detailed breakdown: why it worked that way, which language mechanisms are involved, and how to avoid such "surprises" in real development. Topics covered include:
- Type coercion and loose equality (
==vs===); - Closures and lexical environment;
- Prototypal inheritance and the prototype chain;
- Asynchrony: callbacks, promises, Event Loop;
- The
thiscontext and its non-obvious bindings; - The behavior of
var,let,constin loops and blocks; - "Pitfalls" of working with arrays and objects;
- Features of the
typeof,instanceof,deleteoperators.
Who this book is for
The book is aimed at practicing JavaScript developers at the Junior+ and Middle levels. Beginners who have just started learning the language will find it too difficult and possibly demotivating. However, those who have been writing JavaScript code for at least six months to a year will find invaluable material for deepening their understanding. The book will also be useful for those preparing for technical interviews: many problems are very similar to "tricky questions" from interviews at large IT companies.
What the reader will learn
After working through all the puzzles, the reader will:
- Stop fearing implicit type coercion and learn to predict its results;
- Deeply understand how
thisworks in various contexts (global, object method, constructor, arrow function); - Master the nuances of the Event Loop and the microtask queue;
- Learn to distinguish real problems from "noisy" language features;
- Be able to write more reliable and predictable code, avoiding common pitfalls;
- Improve their skill in reading other people's code and finding hidden bugs.
Strengths
The main advantage of the book is its format. Instead of boring theory, you get an interactive experience: you read the code, make a guess, check yourself, read the explanation. This is very effective for memorization. The author doesn't just show "magic," but explains the internal mechanisms, referencing the ECMAScript specification. Another plus is its compactness: 200 pages without fluff, just the essence. The book is well-structured: from simple problems to complex ones, with a gradual increase in depth. It is also worth noting that all examples are relevant to the modern ES6+ standard (although the book was published in 2019, the core concepts have not become outdated).
Who it is recommended for
I recommend "JavaScript Brain Teasers" to everyone who wants to move from the level of "just writing code" to the level of "understanding how the language works." It is an excellent mental workout that can be read in short bursts — one or two problems a day. The book would also make a great gift for a developer colleague who enjoys solving puzzles. If you teach JavaScript, you can use problems from the book as a warm-up at the beginning of classes. The only limitation: don't give it to absolute beginners — it's better to first master the basics using a classic textbook (for example, "Eloquent