- var, let [ES6] and const [ES6], and their comparision
- typeof
- Type Conversion and Coercion
- Function Declaration and Expression
- Equality Operators
- Falsy Values
- [ES6] Destructuring Assignment
- Short Circuiting
- Nullish Coalescing Operator
- [ES6] Spread Operator
- [ES6] Rest Operator
- [ES6] Arrow Functions
- [ES6] Enhanced Object Literals
- [ES6] Template Literals
- [ES6] for-of loop
- for-in loop
- [ES6] Default Parameters (Function)
- Error Types
- Console
- User Interaction (Browser)
- Arrays
- Array Methods
- Objects properties retrieval, removal, iteration, clones and methods
- Objects' [this] keyword
- [ES6] Maps, iteration and methods
- [ES6] Sets, methods and use cases
- Which data structure to use?
- [ES6] Default parameters
- Pass by Value OR Pass by Reference
- setTimeout()
- setInterval()
- Optional Chaining
- Closures
- Higher Order Functions
- call, apply and bind methods
- IIFE
- string methods
- Compilation, Interpretation and JIT-Compilation
- Javascript Runtime
- Javascript Engine
- Function Execution Context
- Hoisting and TDZ
- [this] Keyword
- Arrow Functions Vs Regular Functions
- Primitives Values and Reference Values
- Event Loop
- Introduction & Module Types
- ES6 Modules
- Module Pattern & Modules behind the scenes
- import vs require
- Object Oriented Programming in Javascript
- Constructor Functions and Prototypes
- Prototype Chain
- Prototypal Inheritance
- ES6 Classes
- ES6 Classes - getters and setters
- Object.create
- Static Methods
- Inheritance
- Encapsulation
- Chaining Class Methods
- synchronous vs asynchronous
- Promises & fetch API
- Event loop
- Promisify
- [ES2017] async/await
- Promise static methods - race, all, any & allSettled
- Package
- Package.json
- Local and Global package installation