Book Image

Learning JavaScript Data Structures and Algorithms - Second Edition

By : Loiane Groner
Book Image

Learning JavaScript Data Structures and Algorithms - Second Edition

By: Loiane Groner

Overview of this book

This book begins by covering basics of the JavaScript language and introducing ECMAScript 7, before gradually moving on to the current implementations of ECMAScript 6. You will gain an in-depth knowledge of how hash tables and set data structure functions, as well as how trees and hash maps can be used to search files in a HD or represent a database. This book is an accessible route deeper into JavaScript. Graphs being one of the most complex data structures you’ll encounter, we’ll also give you a better understanding of why and how graphs are largely used in GPS navigation systems in social networks. Toward the end of the book, you’ll discover how all the theories presented by this book can be applied in real-world solutions while working on your own computer networks and Facebook searches.
Table of Contents (18 chapters)
Learning JavaScript Data Structures and Algorithms - Second Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

EcmaScript 6 and the Stack class


Let's take a moment to analyze our code and see if we can improve it using some of the new EcmaScript 6 (ES6) functionalities.

We created a Stack function that can be used as a sort of class; since JavaScript functions have constructors, we can simulate the class behavior. We declared a variable named items that is private and only accessible to the Stack function/class. However, this approach creates a copy of the variable items for each class instance created. Therefore, it does not escalate well in case we need to use several instances of the Stack class at the same time.

Let's see how we can declare the same Stack class using the new ES6 syntax and compare its pros and cons against the approach we used in this chapter.

Declaring the Stack class using ES6 syntax

The first code we will analyze is the following:

class Stack { 
  constructor () {
    this.items = []; //{1}
  } 
  push(element){ 
    this.items.push(element); 
  } 
  //other methods 
} 

We simply...