Research to gain a deeper understanding of how JavaScript works under the hood.
Report Bug
·
Request Feature
Table of Contents
-
- JS Engine
- Interpreter
- Compiler
- ECMAScript
- Writing optimised code
- Inline Caching
- Hidden Classes
- Call Stack
- Memory Heap
- Garbage Collection
- Memory Leaks
- JavaScript Runtime
- Web Browser API
- The Heap
- The Stack
- The Web API Container
- The Callback Queue
- The Event Loop
- Node.js
- Lexical Environment
- Scope
- Execution Context
- Global Execution Context
- Functional execution context
- Hoisting
- Scope Chain
- This
- Function Currying
- Context vs Scope
-
- Primitive Types
- Number
- String
- Boolean
- Null
- Undefined
- Symbol
- Non Primitive Types
- Object
- Pass By Value (primitives)
- Pass by Reference (objects)
- Type Coercion
-
- Higher Order Functions
- Closures
- Memory efficiency
- Encapsulation
- Prototypal Inheritance
- Manually creating a prototype chain
- Inheritance using Object.create()
- Only functions have the .prototype property
-
- Class-based vs Prototype-based
- Factory Functions
- Using Object.create()
- Using Constructor Functions
- Using ES6 Classes
- More of 'This'
- Implicit Binding
- Explicit Binding
- New Binding
- Lexical Binding
- Window Binding
- Inheritance
- Public & Private - Protected properties and methods
- Internal and external interface
- Protected properties
- Read-only properties
- Private properties
- The Four Pillars of OOP
- 1. Encapsulation
- 2. Abstraction
- 3. Inheritance
- 4. Polymorphism
-
- How Does the Browser Execute Asynchronous Code?
- JavaScript's Execution
- The thread of execution
- Deferred code execution
- Web APIs
- Callbacks
- Callback hell
- Promises
- Async/Await
- ES9
- Array Destructuring
- Array Literals
- Object Destructuring
- Object Literals
- Finally
- For await of
- Job Queue
- Parallel, Sequence, Race
- Threads
- Concurrency and Parallelism