Book Image

Learning JavaScript Data Structures and Algorithms - Third Edition

Book Image

Learning JavaScript Data Structures and Algorithms - Third Edition

Overview of this book

A data structure is a particular way of organizing data in a computer to utilize resources efficiently. Data structures and algorithms are the base of every solution to any programming problem. With this book, you will learn to write complex and powerful code using the latest ES 2017 features. Learning JavaScript Data Structures and Algorithms begins by covering the basics of JavaScript and introduces you to ECMAScript 2017, before gradually moving on to the most important data structures such as arrays, queues, stacks, and linked lists. You will gain in-depth knowledge of how hash tables and set data structures function as well as how trees and hash maps can be used to search files in an HD or represent a database. This book serves as a route to take you deeper into JavaScript. You’ll also get a greater understanding of why and how graphs, one of the most complex data structures, are largely used in GPS navigation systems in social networks. Toward the end of the book, you’ll discover how all the theories presented in this book can be applied to solve real-world problems while working on your own computer networks and Facebook searches.
Table of Contents (22 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

The ES2015 WeakMap and WeakSet classes


Along with the two new data structures Set and Map, ES2015 also introduced a weak type version of these classes: WeakMap and WeakSet.

Basically, the only difference between the Map or Set classes and their weak versions are:

  • The WeakSet or WeakMap classes do not have the entries, keys, and values methods
  • It is only possible to use objects as keys

The reason for creating and using these two classes is performance-related. Since WeakSet and WeakMap are weakly typed (using the object as a key), there is no strong reference to the keys. This behavior allows the JavaScript garbage collector to clean an entire entry from the map or set.

Another advantage of the weak versions is we can only retrieve a value if you have its key. Since these classes do not have the iterator methods (entries, keys, and values), there is no way to retrieve a value unless you know what the key is. This confirms our choice in using the WeakMap class to encapsulate the private properties...