Embarking on a 100-Day Journey with JavaScript! 🚀
Tags: 100daysofcode, javascript, learning, productivity
Published: 2024-02-24 13:13:23

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](https://github.com/lassiecoder/100daysofjs/tree/code-structure-and-modern-mode)
- [Modern mode: "use strict"](https://github.com/lassiecoder/100daysofjs/tree/code-structure-and-modern-mode)
- [Variables & Data types](https://github.com/lassiecoder/100daysofjs/tree/variables-and-data-types)
- [Interaction methods: alert, prompt, confirm](https://github.com/lassiecoder/100daysofjs/tree/interaction-and-type-conversions)
- [Type Conversions](https://github.com/lassiecoder/100daysofjs/tree/interaction-and-type-conversions)
- [Basic operators & Math](https://github.com/lassiecoder/100daysofjs/tree/basic-operators-and-math)
- [Comparisons & Conditional branching: if, '?'](https://github.com/lassiecoder/100daysofjs/tree/comparisons-and-conditional-branching)
- [Logical operators & Nullish coalescing '??'](ttps://github.com/lassiecoder/100daysofjs/tree/logical-operators-and-nullish-coalescing)
- [Loops: while, for](https://github.com/lassiecoder/100daysofjs/tree/loops)
- ["switch" statement](https://github.com/lassiecoder/100daysofjs/tree/switch-statement)
- [Functions & Expressions](https://github.com/lassiecoder/100daysofjs/tree/functions-and-expressions)
- [Arrow functions basics](https://github.com/lassiecoder/100daysofjs/tree/arrow-functions)

**Mastering Objects in JavaScript:**
- [Basics of Objects](https://github.com/lassiecoder/100daysofjs/tree/basics-of-objects)
- [Object references and copying](https://github.com/lassiecoder/100daysofjs/tree/object-references-and-copying)
- [Garbage collection](https://github.com/lassiecoder/100daysofjs/tree/garbage-collection)
- [Object methods and "this" keyword](https://github.com/lassiecoder/100daysofjs/tree/object-methods-and-this-keyword)
- [Constructors and the "new" operator](https://github.com/lassiecoder/100daysofjs/tree/constructors-and-the-new-operator)
- [Optional chaining with '?.'](https://github.com/lassiecoder/100daysofjs/tree/optional-chaining)
- [Symbol type](https://github.com/lassiecoder/100daysofjs/tree/symbol-type)
- [Object to primitive conversion](https://github.com/lassiecoder/100daysofjs/tree/object-to-primitive-conversion)

**JavaScript Data Types & Operations:**
- [Understanding Data types](https://github.com/lassiecoder/100daysofjs/tree/data-types-and-methods-of-primitives)
- [Methods of primitives](https://github.com/lassiecoder/100daysofjs/tree/data-types-and-methods-of-primitives)
- [Working with Numbers](https://github.com/lassiecoder/100daysofjs/tree/numbers)
- [Manipulating Strings](https://github.com/lassiecoder/100daysofjs/tree/manipulating-strings)
- [Handling Arrays & Array methods](https://github.com/lassiecoder/100daysofjs/tree/handling-arrays-and-array-methods)
- [Exploring Iterables](https://github.com/lassiecoder/100daysofjs/tree/exploring-iterables)
- [Map and Set data structures](https://github.com/lassiecoder/100daysofjs/tree/map-and-set-data-structures)
- [WeakMap and WeakSet for memory management](https://github.com/lassiecoder/100daysofjs/tree/weakmap-and-weakset)
- [Object manipulation: keys, values, entries](https://github.com/lassiecoder/100daysofjs/tree/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! 💻✨

Feel free to share this post with fellow coders and enthusiasts. Let's spread the JavaScript love far and wide! 🚀 #100DaysOfJavaScript #CodeNewbie #JavaScriptJourney

See you in the code! 😉

Here's the [link to my GitHub repository](https://github.com/lassiecoder/100daysofjs) where you can find all the latest updates and progress reports.