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

Introduction

Introduction to Web

  • How Web Application Works
  • Traditional Web Applications
  • Server Side Rendering (SSR)
  • Disadvantages of Server Side Rendering
  • The rise of JavaScript
  • Client Side Rendering (CSR)
  • Single Page Applications (SPA)

Introduction to Frameworks

  • Disadvanages in traditional JS coding
  • What are Web Components
  • Advantages of Web Components
  • How the Browsers Work
  • Repainting
  • DOM Interactions
  • Declarative Programming

Introduction to React JS

Using React as a Library

  • Creating HTML Elements using Vanilla JS
  • React JS is a Library
  • Creating React Elements using ReactJS
  • React JS vs React DOM
  • Rendering React Elements into DOM using ReactDOM
  • Creating React Elements using JSX
  • How JSX treats functions with different names

React App

  • Creating a React application, the latest way
  • Application File Structure
  • Default files
  • Introduction to React Components
  • Styling inside React Applications
  • Handling Events in the component
  • Accessing Event Details
  • Installing third party libraries
  • Installing Tailwind CSS
  • Mini Task - Creating a Movie Card
  • Using Data in the template
  • Conditionally displaying UI based on the data
  • Handling Arrays in the template
  • Mini Task - Movie Listing
  • Child Components
  • Passing data to the child components
  • Using Props inside child component
  • Mini Task - Re-factor listings using child components
  • Accessing data from the child component

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