One of my favorite quotes from the Front-End Developer Handbook explains it best:
Use clear, precise, and easy-to-understand language. At Books on Code, we prioritize books that are a joy to read and bring small moments of humor and delight.
Contain practice problems and questions for you to work on your own
Engaging and able to hold the attention of readers
Structured and friendly toward self-taught programmers
Types, values, and variables, which goes over numbers, text, boolean values, null and undefined, symbols, global object, immutable primitive values as well as mutable object references, type conversions, variable declaration and assignment.
Expressions and operators, which includes primary expressions, object and array initializers, function definition expressions, property access expressions, invocation expressions, object creation expressions, operator overview, arithmetic expressions, relational expressions, logical expressions, assignment expressions, evaluation expressions, and more.
Statements, which includes expression statements, compound and empty statements, conditionals, loops, jumps, miscellaneous statements, declarations, and more.
Objects, which includes creating objects, querying and setting properties, deleting properties, testing properties, enumerating properties, extending objects, serializing objects, object methods, extended object literal syntax, and more.
Arrays, which includes creating arrays, reading and writing array elements, sparse arrays, array length, adding and deleting array elements, iterating arrays, multidimensional arrays, array methods, array-like objects, strings as arrays, and more.
Functions, which includes defining funnctions, invoking functions, function arguments and parameters, functions as values, functions as namespaces, clusures, functional programming, and more.
Classes, which includes classes and prototypes, classes and constructors, classes with the class keyword, adding methods to existing classes, subclasses, and more.
Modules, which includes modules with classes, objects, and closures, modules in node, modules in ES6, and more.
Iterators and generators, which includes how iterators work, implementing iterable objects, generators, advanced generator features, and more.
Metaprogramming, which includes property attributes, object extensibility, the prototype attribute, well-known symbols, template tags, the reflect API, proxy objects, and more.
It further digs deeper into concepts like:
Part 3 discusses Node a little more and goes a bit more in-depth on speed and performance.
Book 3: You Don’t Know JS Yet: Get Started
What is covered in this packed, little book (but remember, there’s five more afterward):
Chapter 3: Digging to the Roots of JS — Talks about iterations, consuming iterators, and iterables. Also defines and discusses closures and the
Chapter 4: The Bigger Picture — Talks about big-picture concepts such as scope and closure, prototypes, types and coercion, and a recommended order for reading the rest of the books in the series.
Appendix A: Exploring Further — Discusses the difference between values and references, function forms, coercive conditional comparison, and prototypal classes
Appendix B: Practice, Practice, Practice! — Provides more practice with value and type comparisons, closure, and prototypes. This appendix also provides solution examples.
Book 4: Understanding ECMAScript 6
As you go through the book, you will learn:
What makes iterators and generators useful
How arrow functions are different from regular functions
Ways to store data with sets, maps, and more
The power of inheritance
What is so exciting about asynchronous programming with promises
How modules change the way you organize code
Chapter 1 covers the block bindings
Chapter 2 covers strings and regular expressions
Chapter 3 covers functions
Chapter 4 covers expanded object functionality
Chapter 5 covers destructuring for easier data access
Chapter 6 covers symbols and symbol properties
Chapter 7 covers sets and maps
Chapter 8 covers iterators and generators
Chapter 10 covers content on improved array capabilities
Chapter 11 talks about promises and asynchronous programming
Chapter 12 covers proxies and the reflection API
Chapter 13 talks about encapsulating code with modules
While you can still purchase and benefit from these books, I include them in this section with a cautionary warning that the books are several years old. You may also see these books topping other lists without being reassessed for 2020.
Teaches you how to create scripts from scratch
Demonstrates the latest practices in progressive enhancement and cross-browser compatibility
Make your sites more interactive
Use jQuery to simplify your code
Recreate popular web techniques
This book includes:
Short chapters that are easy to digest
Coding examples with plenty of visuals
Real-world references and uses everyday scenarios to explain concepts
Interactive exercises to test your skills
The approach of this book is that you read a chapter for 10 minutes and understand the concept. Then you work on the interactive exercises to test your knowledge. The book is very easy to understand and user-friendly. It assumes no programming experience. The book covers ample coding examples and illustrations. The book will end up by free, online, interactive exercises paired with each chapter.
The power of functions
How to work with objects
Making use of prototypes
Writing and testing applications
Better ways to use prototype-based object-oriented programming
Subtleties and solutions for working with arrays and dictionary objects
Also, if you’re interested in studying books faster and better, I have a free email course called Get the Most From Technical Books.