└── README.md /README.md: -------------------------------------------------------------------------------- 1 | ![100daysofjs](https://github.com/lassiecoder/100daysofjs/assets/17312616/05e9143b-cde4-4c29-9a25-2870dfb75db0) 2 | 3 | 4 | Hey everyone! 👋 5 | 6 | I'm diving headfirst into a 100-day JavaScript adventure, and I couldn't be more thrilled to share it with you all! 🎉 7 | 8 | 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: 9 | 10 | **Exploring JavaScript Fundamentals:** 11 | - [Code structure](https://github.com/lassiecoder/100daysofjs/tree/code-structure-and-modern-mode) 12 | - [Modern mode: "use strict"](https://github.com/lassiecoder/100daysofjs/tree/code-structure-and-modern-mode) 13 | - [Variables & Data types](https://github.com/lassiecoder/100daysofjs/tree/variables-and-data-types) 14 | - [Interaction methods: alert, prompt, confirm](https://github.com/lassiecoder/100daysofjs/tree/interaction-and-type-conversions) 15 | - [Type Conversions](https://github.com/lassiecoder/100daysofjs/tree/interaction-and-type-conversions) 16 | - [Basic operators & Math](https://github.com/lassiecoder/100daysofjs/tree/basic-operators-and-math) 17 | - [Comparisons & Conditional branching: if, '?'](https://github.com/lassiecoder/100daysofjs/tree/comparisons-and-conditional-branching) 18 | - [Logical operators & Nullish coalescing '??'](https://github.com/lassiecoder/100daysofjs/tree/logical-operators-and-nullish-coalescing) 19 | - [Loops: while, for](https://github.com/lassiecoder/100daysofjs/tree/loops) 20 | - ["switch" statement](https://github.com/lassiecoder/100daysofjs/tree/switch-statement) 21 | - [Functions & Expressions](https://github.com/lassiecoder/100daysofjs/tree/functions-and-expressions) 22 | - [Arrow functions basics](https://github.com/lassiecoder/100daysofjs/tree/arrow-functions) 23 | 24 | **Mastering Objects in JavaScript:** 25 | - [Basics of Objects](https://github.com/lassiecoder/100daysofjs/tree/basics-of-objects) 26 | - [Object references and copying](https://github.com/lassiecoder/100daysofjs/tree/object-references-and-copying) 27 | - [Garbage collection](https://github.com/lassiecoder/100daysofjs/tree/garbage-collection) 28 | - [Object methods and "this" keyword](https://github.com/lassiecoder/100daysofjs/tree/object-methods-and-this-keyword) 29 | - [Constructors and the "new" operator](https://github.com/lassiecoder/100daysofjs/tree/constructors-and-the-new-operator) 30 | - [Optional chaining with '?.'](https://github.com/lassiecoder/100daysofjs/tree/optional-chaining) 31 | - [Symbol type](https://github.com/lassiecoder/100daysofjs/tree/symbol-type) 32 | - [Object to primitive conversion](https://github.com/lassiecoder/100daysofjs/tree/object-to-primitive-conversion) 33 | 34 | **JavaScript Data Types & Operations:** 35 | - [Understanding Data types](https://github.com/lassiecoder/100daysofjs/tree/data-types-and-methods-of-primitives) 36 | - [Methods of primitives](https://github.com/lassiecoder/100daysofjs/tree/data-types-and-methods-of-primitives) 37 | - [Working with Numbers](https://github.com/lassiecoder/100daysofjs/tree/numbers) 38 | - [Manipulating Strings](https://github.com/lassiecoder/100daysofjs/tree/manipulating-strings) 39 | - [Handling Arrays & Array methods](https://github.com/lassiecoder/100daysofjs/tree/handling-arrays-and-array-methods) 40 | - [Exploring Iterables](https://github.com/lassiecoder/100daysofjs/tree/exploring-iterables) 41 | - [Map and Set data structures](https://github.com/lassiecoder/100daysofjs/tree/map-and-set-data-structures) 42 | - [WeakMap and WeakSet for memory management](https://github.com/lassiecoder/100daysofjs/tree/weakmap-and-weakset) 43 | - [Object manipulation: keys, values, entries](https://github.com/lassiecoder/100daysofjs/tree/object-manipulation-keys-values-entries) 44 | - [Destructuring assignment for efficient coding](https://github.com/lassiecoder/100daysofjs/tree/destructuring-assignment) 45 | - [Working with Date and time](https://github.com/lassiecoder/100daysofjs/tree/date-and-time) 46 | - JSON methods and toJSON for data serialization 47 | 48 | **Advanced Function Techniques in JavaScript:** 49 | - Recursion and managing the stack 50 | - Leveraging Rest parameters and spread syntax 51 | - Understanding Variable scope and closure 52 | - Considerations with the old "var" keyword 53 | - Exploring the Global object 54 | - Function objects and Named Function Expressions (NFE) 55 | - Utilizing the "new Function" syntax 56 | - Scheduling tasks with setTimeout and setInterval 57 | - Applying Decorators and forwarding with call/apply 58 | - Function binding for managing context 59 | - Revisiting Arrow functions and their nuances 60 | 61 | **Advanced Object Property Configuration & Prototypal Inheritance:** 62 | - Understanding Property flags and descriptors 63 | - Implementing Property getters and setters for controlled access 64 | - Delving into Prototypal inheritance and its mechanisms 65 | - Exploring F.prototype and its role in inheritance chains 66 | - Native prototypes and their usage in JavaScript 67 | - Prototype methods and handling objects without __proto__ references 68 | 69 | **Exploring JavaScript Classes:** 70 | - Introduction to Class basic syntax 71 | - Implementing Class inheritance 72 | - Defining Static properties and methods within classes 73 | - Understanding Private and protected properties and methods 74 | - Extending built-in classes for custom functionality 75 | - Class checking using "instanceof" 76 | - Utilizing Mixins for flexible composition of behavior 77 | 78 | **Handling Errors in JavaScript:** 79 | - Implementing basic error handling with "try...catch" 80 | - Creating Custom errors by extending the Error object 81 | 82 | **Promises, async/await JavaScript Operations:** 83 | - Introduction to callbacks 84 | - Understanding Promises and their usage 85 | - Chaining Promises for sequential operations 86 | - Error handling with Promises 87 | - Exploring the Promise API for additional functionality 88 | - Promisification for converting callback-based functions to Promise-based 89 | - Managing microtasks 90 | - Utilizing async/await for asynchronous code readability and simplicity 91 | 92 | **Generators, advanced iteration & Modules Features:** 93 | - Understanding Generators for advanced iteration 94 | - Exploring async iteration and generators for asynchronous operations 95 | - Introduction to Modules and their benefits 96 | - Exporting and Importing modules for code organization and reusability 97 | - Dynamically importing modules for efficient loading and dependency management 98 | 99 | **Miscellaneous JavaScript Topics:** 100 | - Utilizing Proxy and Reflect for meta-programming and interception 101 | - Running code strings dynamically with eval (caution advised) 102 | - Implementing Currying for functional programming 103 | - Understanding Reference Type in JavaScript 104 | - Working with BigInt for handling large integer values 105 | - Exploring Unicode and String internals for character encoding 106 | - Utilizing WeakRef and FinalizationRegistry for memory management and cleanup duties 107 | 108 | Stay tuned for daily updates, challenges, and plenty of code snippets! Let's make these 100 days count! 💻✨ 109 | 110 | --------------------------------------------------------------------------------