Hey everyone! 👋
I'm diving headfirst into a 100-day JavaScript adventure, and I couldn't be more thrilled to share it with you all! 🎉
Over the next three months, I'll be immersing myself in everything JavaScript has to offer, from the very basics to some seriously advanced concepts. Here's a sneak peek into what's in store:
Exploring JavaScript Fundamentals:
- Code structure
- Modern mode: "use strict"
- Variables & Data types
- Interaction methods: alert, prompt, confirm
- Type Conversions
- Basic operators & Math
- Comparisons & Conditional branching: if, '?'
- Logical operators & Nullish coalescing '??'
- Loops: while, for
- "switch" statement
- Functions & Expressions
- Arrow functions basics
Mastering Objects in JavaScript:
- Basics of Objects
- Object references and copying
- Garbage collection
- Object methods and "this" keyword
- Constructors and the "new" operator
- Optional chaining with '?.'
- Symbol type
- Object to primitive conversion
JavaScript Data Types & Operations:
- Understanding Data types
- Methods of primitives
- Working with Numbers
- Manipulating Strings
- Handling Arrays & Array methods
- Exploring Iterables
- Map and Set data structures
- WeakMap and WeakSet for memory management
- Object manipulation: keys, values, entries
- Destructuring assignment for efficient coding
- Working with Date and time
- JSON methods and toJSON for data serialization
Advanced Function Techniques in JavaScript:
- Recursion and managing the stack
- Leveraging Rest parameters and spread syntax
- Understanding Variable scope and closure
- Considerations with the old "var" keyword
- Exploring the Global object
- Function objects and Named Function Expressions (NFE)
- Utilizing the "new Function" syntax
- Scheduling tasks with setTimeout and setInterval
- Applying Decorators and forwarding with call/apply
- Function binding for managing context
- Revisiting Arrow functions and their nuances
Advanced Object Property Configuration & Prototypal Inheritance:
- Understanding Property flags and descriptors
- Implementing Property getters and setters for controlled access
- Delving into Prototypal inheritance and its mechanisms
- Exploring F.prototype and its role in inheritance chains
- Native prototypes and their usage in JavaScript
- Prototype methods and handling objects without proto references
Exploring JavaScript Classes:
- Introduction to Class basic syntax
- Implementing Class inheritance
- Defining Static properties and methods within classes
- Understanding Private and protected properties and methods
- Extending built-in classes for custom functionality
- Class checking using "instanceof"
- Utilizing Mixins for flexible composition of behavior
Handling Errors in JavaScript:
- Implementing basic error handling with "try...catch"
- Creating Custom errors by extending the Error object
Promises, async/await JavaScript Operations:
- Introduction to callbacks
- Understanding Promises and their usage
- Chaining Promises for sequential operations
- Error handling with Promises
- Exploring the Promise API for additional functionality
- Promisification for converting callback-based functions to Promise-based
- Managing microtasks
- Utilizing async/await for asynchronous code readability and simplicity
Generators, advanced iteration & Modules Features:
- Understanding Generators for advanced iteration
- Exploring async iteration and generators for asynchronous operations
- Introduction to Modules and their benefits
- Exporting and Importing modules for code organization and reusability
- Dynamically importing modules for efficient loading and dependency management
Miscellaneous JavaScript Topics:
- Utilizing Proxy and Reflect for meta-programming and interception
- Running code strings dynamically with eval (caution advised)
- Implementing Currying for functional programming
- Understanding Reference Type in JavaScript
- Working with BigInt for handling large integer values
- Exploring Unicode and String internals for character encoding
- Utilizing WeakRef and FinalizationRegistry for memory management and cleanup duties
Stay tuned for daily updates, challenges, and plenty of code snippets! Let's make these 100 days count! 💻✨