This book addresses one of the most glaring gaps in JavaScript developers’ knowledge base-basic computer science concepts, like data structures and algorithms, for solving complex problems. For JavaScript developers, this book is a one-stop-shop for learning the algorithms and data structures that solve and optimize complex problems-covering everything from functional programming and abstract data types, to sorting and searching, lists, bags, binary trees, forests, heaps, and graphs. The author’s use of examples taken from coding challenges and programming interviews enables you to explore the real-world advantages of specific algorithms and data structures. Written and illustrated to be a developer’s go-to reference manual for immediate on-the-job applications, performance-both from a theoretical point of view and a practical standpoint-is emphasized alongside every algorithm or data structure introduced. In addition to demonstrating best practices throughout the text, each chapter ends with a series of questions and examples that clarify the preceding concepts. The book utilizes the latest version of JavaScript (ECMAScript) and its more modern features wherever appropriate.