Do Not Just Learn,

Expert JavaScript

Stop learning JavaScript in bits and pieces from here and there. Learn it once and learn it to be an Expert.

Launch Yourself Into The Future.

Vitae consequat augue. Vivamus eget dolor vel quam condimentum sodales in bibendum odio urna sit amet. In non pulvinar purus. Curabitur nisi odio, blandit et elit at, suscipit pharetra efficitur elit.

N 100% Instructor Led Training

N Money Back Guarantee

M No Recorded Videos

Essential JavaScript

Introduction to JavaScript

  • Why JavaScript
  • What is ECMA Script
  • ECMA Script vs JavaScript
  • JavaScript Engines
  • JavaScript Environments
  • Client Side JavaScript
  • Server Side JavaScript
  • JavaScript for Desktop Applications

Variables & Data Types

  • Introduction to Variables
  • Different ways to create Variables
  • Using var, let and const
  • Data Types in JavaScript
  • Primitive Data Types
  • Reference Data Types
  • Primitive vs Reference Data Types

Numbers

  • Numbers in JavaScript
  • Floating Point Numbers
  • IEEE 754 standards
  • Special numeric values
  • Not A Number, Infinity, -Infinity
  • Numbers of Different Base
  • Binary, Octal and Hexa Decimal Numbers
  • Issues with Floating Point Numbers
  • Solving the issues of Floating Point Numbers
  • Max and Min Safe Integers

Strings

  • Strings in JavaScript
  • Creating Strings in multiple ways
  • Multiline Strings
  • Variables inside Strings
  • Template Literals
  • Double,Single Quotes vs Template literals
  • String Methods

Booleans

  • Booleans in JavaScript
  • Creating and using boolean data types
  • Falsy things in JavaScript
  • Comparison Operators
  • Strict Comparison
  • Abstract Comparison
  • Strict vs Abstract Comparison

Undefined & Null

  • Null in Programming languages
  • Undefined & Null in JavaScript
  • Undefined vs Null
  • Non Nullability
  • Null Aware Operator
  • Handling Null & Undefined values

Symbols & Bigint

  • Introduction to Symbols
  • Purpose of Symbols
  • Creating & Using Symbols
  • Advantages of Symbols
  • Introduction to Bigint
  • Purpose of Bigint
  • Creating & Using Bigint
  • More on Symbols in Advanced JavaScript

Reference Data Types

  • Introduction to Reference Data Type
  • Issues with Reference Data Types
  • Shallow Copy
  • Deep Copy
  • A note on State Management
  • Spread Operator
  • Object Assign
  • Levels of Deep Copy

Arrays

  • Introduction to Arrays
  • Creating and Accessing Arays
  • Working with Array Methods
  • IndexOf, Includes
  • Push, Pop, Shift, Unshift, Splice
  • ForEach, Map, Filter, Slice
  • Find, FindIndex
  • Every, Some
  • Flat, FlatMap
  • Entries, Keys
  • More on Arrays & Iterables in Advanced JavaScript

Objects

  • Objects in JavaScript
  • Creating and Accessing Objects and their properties
  • Deleting Properties
  • Handling Dynamic Properties
  • Iterating through an Object
  • Objects Keys, Values and Entries
  • Objects Own Properties, Has Own Property
  • Objects Inherited Propertiess
  • More on Objects in Advanced JavaScript

Functions

  • Introduction to functions
  • Types of Functions in JavaScript
  • Named Functions
  • Anonymous Functions
  • Arrow Functions
  • IIFE functions
  • Functions with Parameters
  • Default Parameters
  • Arguments Object
  • Rest Params
  • More on Functions in Advanced JavaScript

Object Oriented Programming

  • OOPs in JavaScript
  • Introduction to Classes
  • Constructor Function
  • Implementing Inheritance
  • Implementing Polymorphism
  • Access Modifiers
  • Public Properties
  • Private Properties
  • Static Properties

Promises

  • Introduction to Promises
  • Creating Promises
  • Resolving and Rejecting Promises
  • Promises Statuses
  • Handling promise using then..catch..finally
  • Creating Promises with Async Functions
  • Handling promise using async await .. Try & Catch
  • Error Handling Promises
  • More on Promises in Advanced JavaScript

Fetch API

  • Introduction to Fetch API
  • Get Request
  • Post Request with Body using Fetch
  • Put/Patch Requests using Fetch
  • Delete Request
  • Client Server Communication
  • Http Headers
  • Fetch request with Headers
  • Error Handling

Misc.

  • Built-in Timer Functions
  • Set Timeout
  • Set Interval & Clear Interval

Advanced JavaScript

Asynchronous JavaScript

  • Introduction to Asynchronous Programming
  • Synchronous JavaScript
  • Single Threaded JavaScript
  • Event Loop
  • Events & Macrotasks
  • Jobs & Microtasks
  • Execution Order
  • What in JavaScript are events and what are jobs
  • Race Conditions
  • Benefits of Asynchronous Programming
  • Handling Asynchronous JavaScript

Prototypes

  • Prototype Based Programming
  • Traditional ways of implementing OOPs in JavaScript
  • Factory/Constructor Functions
  • this keyword inside functions
  • Prototypes
  • Prototype Chain
  • Inheritance using Prototypes
  • Polymorphism using Prototypes
  • Built-in Objects in JavaScript
  • Extending Built-in Objects Functionality

More about Objects

  • Different ways to create an object
  • Object Prototypes
  • Setting Object Prototypes
  • Symbols as Objects Properties
  • Advantages of Symbols as Object Propeties
  • Object Property Properties
  • Writable, Configurable, Enumerable
  • Creating Immutable Objects
  • IsExtensible
  • Freeze, Seal

More About Promises

  • Chaining Promises
  • Handling Multiple Promises
  • Promise All & Its use cases
  • Promise All Settled & Its use cases
  • Promise Race & Its use cases
  • Promise Any & Its use cases
  • Promises Execution
  • Promises and Asynchronous JavaScript
  • Promises vs Synchronous JavaScript
  • Promises vs Events

Closures & Scopes

  • Scopes in JavaScript
  • Global Scope
  • Functional Scope
  • Block Scope
  • Lexical Scope
  • What is a Closure
  • How to create a Closure
  • Advantages of Closures

Execution Context & Hoisting

  • Execution Context in JavaScript
  • Creation Phase
  • Execution Phase
  • Call Stack
  • Hoisting in JavaScript
  • Temporal Dead Zones
  • Hoisting of Functions
  • Hoisting in ES6 JavaScript
  • Hoisting of Classes

Sets

  • Introduction to Sets in JavaScript
  • Sets vs Arrays
  • Advantages of Sets
  • Creating and Accessing Sets
  • Working with Sets Methods
  • Union, Subset, Superset, Intersection, Disjoint on Sets
  • Iterating Sets
  • Arrays to Sets and viceversa
  • Strings to Sets and viceversa
  • Sets from Maps

Maps

  • Introduction to Maps in JavaScript
  • Maps vs Objects
  • Issues with Objects in JavaScript
  • Advantages of Maps
  • Creating and Accessing Maps
  • Working with Maps Methods
  • Iterating Maps
  • Maps from Objects
  • Maps from Sets
  • Disadvantages of Maps

WeakMaps & WeakSets

  • Introduction to WeakMaps
  • Maps vs WeakMaps
  • Sets vs WeakSets
  • Meta Programming
  • Advantages of WeakMaps & WeakSets
  • Creating and Working with WeakMaps & WeakSets

Iterators & Generators

  • Introduction to Sets in JavaScript
  • Sets vs Arrays
  • Advantages of Sets
  • Creating and Accessing Sets
  • Working with Sets Methods
  • Union, Subset, Superset, Intersection, Disjoint on Sets
  • Iterating Sets
  • Arrays to Sets and viceversa
  • Strings to Sets and viceversa
  • Sets from Maps

Modules

  • Introduction to Modules
  • Modules in Traditional JavaScript
  • Modules in Node JS
  • Modules in JavaScript
  • Import & Exports
  • Named Exports
  • Default Exports
  • Importing Named & Default Exports
  • Renaming during imports
  • Lazy Loading

WeakMaps & WeakSets

  • Introduction to WeakMaps
  • Maps vs WeakMaps
  • Sets vs WeakSets
  • Meta Programming
  • Advantages of WeakMaps & WeakSets
  • Creating and Working with WeakMaps & WeakSets