⚠️ Live stream: The content of this repo, as well as the backend framework we're building, is being live-streamed on YouTube.
This guide is designed to provide you with a thorough understanding of JavaScript, from the basics to advanced topics. Whether you're a beginner or an experienced developer, this repository will guide you through the world of JavaScript using clear explanations and well-commented code examples.
You may also check out my other repository - Learn Node.js - The Hard Way that takes you on a deep journey into Node.js. We build a completely functional and production ready backend framework and a logging/tracing library - all with 0 dependencies (no npm install!)
- Variables
- Data Types
- Type Conversion
- Type Coercion
- Operators
- Control Flow
- Loops
- Arrays
- Strings
- Functions
- Scope
- Objects
- Inheritance with Objects
- Classes
- Inheritance with Classes
- Destructuring
- Spread and Rest Operators
this
Keyword- Call, Apply, Bind
- Error Handling
- Debugging
- Callbacks
- Promises
- Asynchronous Programming
- DOM Manipulation
- Events
- Storage
- IndexedDB
- Symbol
- Fetch API
- Modules
- Template Literals
- Date and Time
- Math
- Bitwise Operations
- Regular Expressions
setTimeout
setInterval
JSON.stringify
JSON.parse
- Map
- WeakMap
- Set
- WeakSet
- Generators
- Iterators
- BigInt
- Web APIs
- Canvas
- Drag and Drop
- File and Blob
- Websockets
- Web Workers
- Service Workers
- Custom Events
- WebRTC
- Dynamic Imports
- Decorators
- Proxy
- Reflect
- Performance
- Navigator
- User Timing API
- Navigation Timing
- Lazy Loading
There are more complex topics that I would like to cover in this repository. I will be adding them as I get time to write them. Most of them will be related to performance and optimization.
If you would like to see more chapters on any specific topic, please feel free to open an issue or create a discussion. I will be happy to add more chapters to this repository.
Note: This README serves as an index for the chapters available in the repository. You can click on the chapter titles to access the corresponding JavaScript files for learning.