Docs

13.3-Symbols

JavaScript Complete Learning Path

πŸ“š From Beginner to Advanced | 25 Modules | 240+ Files

Welcome to your comprehensive JavaScript learning journey! This repository is structured to take you from absolute beginner to advanced JavaScript developer with hands-on practice.


🎯 How to Use This Repository

For each topic, you'll find 3 files:

  1. β€’README.md - Complete theory and explanations. Read this first!
  2. β€’examples.js - Working code examples demonstrating concepts
  3. β€’exercises.js - Practice problems to test your understanding

Learning Flow:

README.md (Learn) β†’ examples.js (See) β†’ exercises.js (Practice)

πŸ“– Curriculum Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         JavaScript Learning Path                                 β”‚
β”‚                        25 Modules β€’ 240+ Files β€’ 100K+ Lines                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                  β”‚
β”‚   FUNDAMENTALS (1-5)        DATA TYPES (6-9)         OOP (10-11)                β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚   β”‚ 1. JS Basics    β”‚       β”‚ 6. Arrays/Maps  β”‚      β”‚ 10. Objects     β”‚        β”‚
β”‚   β”‚ 2. Variables    β”‚  ───► β”‚ 7. Strings/RegExβ”‚ ───► β”‚ 11. Classes     β”‚        β”‚
β”‚   β”‚ 3. Operators    β”‚       β”‚ 8. Numbers/Math β”‚      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚   β”‚ 4. Control Flow β”‚       β”‚ 9. Date/Time/i18nβ”‚                                β”‚
β”‚   β”‚ 5. Functions    β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                 β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                            β”‚
β”‚           β”‚                                                                      β”‚
β”‚           β–Ό                                                                      β”‚
β”‚   ADVANCED CORE (12-16)     BROWSER (17-19)          PROFESSIONAL (20-25)       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚   β”‚ 12. Exec Contextβ”‚       β”‚ 17. DOM         β”‚      β”‚ 20. Testing     β”‚        β”‚
β”‚   β”‚ 13. Modern JS   β”‚  ───► β”‚ 18. Browser APIsβ”‚ ───► β”‚ 21. Security    β”‚        β”‚
β”‚   β”‚ 14. ES Modules  β”‚       β”‚ 19. Advanced DOMβ”‚      β”‚ 22. Patterns    β”‚        β”‚
β”‚   β”‚ 15. Async JS    β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚ 23. Performance β”‚        β”‚
β”‚   β”‚ 16. Adv Async   β”‚                                β”‚ 24. Internals   β”‚        β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                β”‚ 25. Web Comps   β”‚        β”‚
β”‚                                                      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚                                                                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“˜ Module Details

PHASE 1: FUNDAMENTALS (Modules 1-5)

ModuleTopicSections
Module 01JavaScript Fundamentals1.1 Introduction, 1.2 Basic Syntax
Module 02Variables & Data Types2.1 Variables, 2.2 Data Types, 2.3 Type Mechanics
Module 03Operators3.1-3.10 All operators including spread, rest, nullish coalescing
Module 04Control Flow4.1 If-Else, 4.2 Switch, 4.3-4.5 Loops, 4.6 Try-Catch
Module 05Functions5.1-5.9 Declarations, expressions, arrow, closures, recursion

PHASE 2: CORE DATA TYPES (Modules 6-9)

ModuleTopicSections
Module 06Arrays6.1 Fundamentals, 6.2 Key Methods, 6.3 Maps/Sets, 6.4 TypedArrays
Module 07Strings7.1 String Fundamentals, 7.2 Regular Expressions
Module 08Numbers & Math8.1 Number Fundamentals, 8.2 Math Object, 8.3 BigInt
Module 09Date & Time9.1 Fundamentals, 9.2 Formatting/Calculations, 9.3 Intl

PHASE 3: OBJECT-ORIENTED PROGRAMMING (Modules 10-11)

ModuleTopicSections
Module 10Objects10.1-10.7 Basics, methods, descriptors, prototypes, patterns, fromEntries
Module 11Classes11.1-11.5 Basics, inheritance, static, private, patterns

PHASE 4: ADVANCED CORE CONCEPTS (Modules 12-16)

ModuleTopicSections
Module 12Execution Context12.1-12.5 Context, call stack, hoisting, event loop, memory management
Module 13Modern JavaScript13.1-13.6 Destructuring, template literals, symbols, iterators, generators, reflect
Module 14ES Modules14.1-14.5 Module systems, ESM, CommonJS, bundlers, patterns
Module 15Asynchronous JavaScript15.1-15.5 Callbacks, promises, async/await, error handling, patterns
Module 16Advanced Async16.1-16.7 Promise combinators, error handling, patterns, workers, streams

PHASE 5: BROWSER & DOM (Modules 17-19)

ModuleTopicSections
Module 17DOM Manipulation17.1-17.5 DOM basics, modifying, events, delegation, forms
Module 18Browser APIs & Storage18.1-18.7 localStorage, JSON, Fetch API, URL/History, timers, Geolocation, Clipboard
Module 19Advanced DOM & Browser19.1-19.8 Traversal, Mutation/Intersection/Resize/Performance observers, animations

PHASE 6: PROFESSIONAL DEVELOPMENT (Modules 20-25)

ModuleTopicSections
Module 20Testing & Debugging20.1-20.5 Unit testing, E2E, mocking, debugging, code quality
Module 21Security Best Practices21.1-21.2 Security fundamentals, secure coding
Module 22Design Patterns22.1 All patterns: creational, structural, behavioral, functional
Module 23Performance Optimization23.1-23.2 Metrics, JS optimization, rendering, network, best practices
Module 24JavaScript Engine Internals24.1-24.5 Engine architecture, hidden classes, GC, modules, optimization
Module 25Web Components25.1-25.4 Custom Elements, Shadow DOM, HTML Templates, Component Patterns

πŸ—‚ Repository Structure

javascript-learning/
β”œβ”€β”€ README.md                              ← You are here
β”œβ”€β”€ Module-01-JavaScript-Fundamentals/
β”‚   β”œβ”€β”€ 1.1-Introduction/
β”‚   └── 1.2-Basic-Syntax/
β”œβ”€β”€ Module-02-Variables-and-Data-Types/
β”‚   β”œβ”€β”€ 2.1-Variables/
β”‚   β”œβ”€β”€ 2.2-Data-Types/
β”‚   └── 2.3-Type-Mechanics/
β”œβ”€β”€ Module-03-Operators/
β”‚   β”œβ”€β”€ 3.1-Arithmetic-Operators/
β”‚   β”œβ”€β”€ 3.2-Comparison-Operators/
β”‚   β”œβ”€β”€ 3.3-Logical-Operators/
β”‚   β”œβ”€β”€ 3.4-Assignment-Operators/
β”‚   β”œβ”€β”€ 3.5-Bitwise-Operators/
β”‚   β”œβ”€β”€ 3.6-Ternary-Operator/
β”‚   β”œβ”€β”€ 3.7-Spread-Operator/
β”‚   β”œβ”€β”€ 3.8-Rest-Operator/
β”‚   β”œβ”€β”€ 3.9-Nullish-Coalescing/
β”‚   └── 3.10-Optional-Chaining/
β”œβ”€β”€ Module-04-Control-Flow/
β”‚   β”œβ”€β”€ 4.1-If-Else/
β”‚   β”œβ”€β”€ 4.2-Switch/
β”‚   β”œβ”€β”€ 4.3-For-Loops/
β”‚   β”œβ”€β”€ 4.4-While-Loops/
β”‚   β”œβ”€β”€ 4.5-ForOf-ForIn/
β”‚   β”œβ”€β”€ 4.6-Try-Catch/
β”‚   └── 4.7-Error-Types-Custom-Errors/
β”œβ”€β”€ Module-05-Functions/
β”‚   β”œβ”€β”€ 5.1-Function-Declarations/
β”‚   β”œβ”€β”€ 5.2-Function-Expressions/
β”‚   β”œβ”€β”€ 5.3-Arrow-Functions/
β”‚   β”œβ”€β”€ 5.4-Parameters-Arguments/
β”‚   β”œβ”€β”€ 5.5-Call-Apply-Bind/
β”‚   β”œβ”€β”€ 5.6-Scope-Closures/
β”‚   β”œβ”€β”€ 5.7-Higher-Order-Functions/
β”‚   β”œβ”€β”€ 5.8-Recursion/
β”‚   └── 5.9-Pure-Functions-Side-Effects/
β”œβ”€β”€ Module-06-Arrays/
β”‚   β”œβ”€β”€ 6.1-Array-Fundamentals/
β”‚   β”œβ”€β”€ 6.2-Key-Array-Methods/
β”‚   β”œβ”€β”€ 6.3-Maps-and-Sets/
β”‚   └── 6.4-TypedArrays-Binary-Data/
β”œβ”€β”€ Module-07-Strings/
β”‚   β”œβ”€β”€ 7.1-String-Fundamentals/
β”‚   └── 7.2-Regular-Expressions/
β”œβ”€β”€ Module-08-Numbers-Math/
β”‚   β”œβ”€β”€ 8.1-Number-Fundamentals/
β”‚   β”œβ”€β”€ 8.2-Math-Object/
β”‚   └── 8.3-BigInt/
β”œβ”€β”€ Module-09-Date-Time/
β”‚   β”œβ”€β”€ 9.1-Date-Fundamentals/
β”‚   β”œβ”€β”€ 9.2-Date-Formatting-Calculations/
β”‚   └── 9.3-Internationalization-Intl/
β”œβ”€β”€ Module-10-Objects/
β”‚   β”œβ”€β”€ 10.1-Object-Basics/
β”‚   β”œβ”€β”€ 10.2-Object-Methods/
β”‚   β”œβ”€β”€ 10.3-Property-Descriptors/
β”‚   β”œβ”€β”€ 10.4-Object-Static-Methods/
β”‚   β”œβ”€β”€ 10.5-Prototypes/
β”‚   β”œβ”€β”€ 10.6-Object-Patterns/
β”‚   └── 10.7-Object-fromEntries-Advanced/
β”œβ”€β”€ Module-11-Classes/
β”‚   β”œβ”€β”€ 11.1-Class-Basics/
β”‚   β”œβ”€β”€ 11.2-Class-Inheritance/
β”‚   β”œβ”€β”€ 11.3-Static-Members/
β”‚   β”œβ”€β”€ 11.4-Private-Fields-Methods/
β”‚   └── 11.5-Class-Patterns/
β”œβ”€β”€ Module-12-Execution-Context/
β”‚   β”œβ”€β”€ 12.1-Execution-Context/
β”‚   β”œβ”€β”€ 12.2-Call-Stack/
β”‚   β”œβ”€β”€ 12.3-Hoisting/
β”‚   β”œβ”€β”€ 12.4-Event-Loop/
β”‚   └── 12.5-Memory-Management/
β”œβ”€β”€ Module-13-Modern-JavaScript/
β”‚   β”œβ”€β”€ 13.1-Destructuring/
β”‚   β”œβ”€β”€ 13.2-Template-Literals/
β”‚   β”œβ”€β”€ 13.3-Symbols/
β”‚   β”œβ”€β”€ 13.4-Iterators/
β”‚   β”œβ”€β”€ 13.5-Generators/
β”‚   └── 13.6-Reflect-API/
β”œβ”€β”€ Module-14-ES-Modules/
β”‚   β”œβ”€β”€ 14.1-Module-Systems-Overview/
β”‚   β”œβ”€β”€ 14.2-ESM-Import-Export/
β”‚   β”œβ”€β”€ 14.3-CommonJS/
β”‚   β”œβ”€β”€ 14.4-Bundlers-Build-Tools/
β”‚   └── 14.5-Module-Patterns/
β”œβ”€β”€ Module-15-Asynchronous-JavaScript/
β”‚   β”œβ”€β”€ 15.1-Callbacks/
β”‚   β”œβ”€β”€ 15.2-Promises/
β”‚   β”œβ”€β”€ 15.3-Async-Await/
β”‚   β”œβ”€β”€ 15.4-Error-Handling/
β”‚   └── 15.5-Async-Patterns/
β”œβ”€β”€ Module-16-Advanced-Async/
β”‚   β”œβ”€β”€ 16.1-Promise-Combinators/
β”‚   β”œβ”€β”€ 16.2-Advanced-Error-Handling/
β”‚   β”œβ”€β”€ 16.3-Async-Patterns/
β”‚   β”œβ”€β”€ 16.4-Web-Workers/
β”‚   β”œβ”€β”€ 16.5-Service-Workers/
β”‚   β”œβ”€β”€ 16.6-Streams-API/
β”‚   └── 16.7-Real-Time-Communication/
β”œβ”€β”€ Module-17-DOM-Manipulation/
β”‚   β”œβ”€β”€ 17.1-DOM-Basics/
β”‚   β”œβ”€β”€ 17.2-Modifying-DOM/
β”‚   β”œβ”€β”€ 17.3-Events/
β”‚   β”œβ”€β”€ 17.4-Event-Delegation/
β”‚   └── 17.5-Forms/
β”œβ”€β”€ Module-18-Browser-APIs-and-Storage/
β”‚   β”œβ”€β”€ 18.1-LocalStorage-SessionStorage/
β”‚   β”œβ”€β”€ 18.2-JSON/
β”‚   β”œβ”€β”€ 18.3-Fetch-API/
β”‚   β”œβ”€β”€ 18.4-URL-History-API/
β”‚   β”œβ”€β”€ 18.5-Timers/
β”‚   β”œβ”€β”€ 18.6-Geolocation-API/
β”‚   └── 18.7-Clipboard-API/
β”œβ”€β”€ Module-19-Advanced-DOM-Browser-APIs/
β”‚   β”œβ”€β”€ 19.1-DOM-Traversal/
β”‚   β”œβ”€β”€ 19.2-MutationObserver/
β”‚   β”œβ”€β”€ 19.3-IntersectionObserver/
β”‚   β”œβ”€β”€ 19.4-ResizeObserver/
β”‚   β”œβ”€β”€ 19.5-PerformanceObserver/
β”‚   β”œβ”€β”€ 19.6-RequestAnimationFrame/
β”‚   β”œβ”€β”€ 19.7-Web-Animations-API/
β”‚   └── 19.8-Drag-and-Drop-API/
β”œβ”€β”€ Module-20-Testing-Debugging/
β”‚   β”œβ”€β”€ 20.1-Unit-Testing/
β”‚   β”œβ”€β”€ 20.2-E2E-Testing/
β”‚   β”œβ”€β”€ 20.3-Mocking/
β”‚   β”œβ”€β”€ 20.4-Debugging/
β”‚   └── 20.5-Code-Quality/
β”œβ”€β”€ Module-21-Security-Best-Practices/
β”‚   β”œβ”€β”€ 21.1-Security-Fundamentals/
β”‚   └── 21.2-Secure-Coding/
β”œβ”€β”€ Module-22-Design-Patterns/
β”‚   └── 22.1-All-Patterns/
β”œβ”€β”€ Module-23-Performance-Optimization/
β”‚   β”œβ”€β”€ 23.1-Performance-Metrics/
β”‚   └── 23.2-Optimization-Techniques/
β”œβ”€β”€ Module-24-JavaScript-Engine-Internals/
β”‚   β”œβ”€β”€ 24.1-Engine-Architecture/
β”‚   β”œβ”€β”€ 24.2-Hidden-Classes/
β”‚   β”œβ”€β”€ 24.3-Garbage-Collection/
β”‚   β”œβ”€β”€ 24.4-Module-Internals/
β”‚   └── 24.5-Optimization-Techniques/
└── Module-25-Web-Components/
    β”œβ”€β”€ 25.1-Custom-Elements/
    β”œβ”€β”€ 25.2-Shadow-DOM/
    β”œβ”€β”€ 25.3-HTML-Templates/
    └── 25.4-Component-Patterns/

πŸ›  Prerequisites

  • β€’A modern web browser (Chrome, Firefox, Edge)
  • β€’A code editor (VS Code recommended)
  • β€’Basic computer literacy
  • β€’Node.js (for Modules 14+)

πŸš€ Getting Started

  1. β€’Start with Module 1 - JavaScript Fundamentals
  2. β€’Open the README.md file in each topic folder
  3. β€’Study the concepts thoroughly
  4. β€’Check examples.js to see practical implementations
  5. β€’Complete exercises.js to test your knowledge
  6. β€’Move to the next topic once you're comfortable

πŸ’‘ Tips for Success

  1. β€’Don't skip topics - Each concept builds on previous ones
  2. β€’Type the code yourself - Don't just copy-paste
  3. β€’Experiment - Modify examples and see what happens
  4. β€’Use DevTools - Practice in browser console
  5. β€’Be patient - Some concepts take time to understand
  6. β€’Build projects - Apply what you learn in real projects

πŸ“Š Learning Time Estimates

PhaseModulesEstimated Time
Fundamentals1-52-3 weeks
Data Types6-91-2 weeks
OOP10-111 week
Advanced Core12-162-3 weeks
Browser/DOM17-192 weeks
Professional20-253-4 weeks
Total25 Modules11-15 weeks

πŸ“ž Happy Learning!

Remember: The best way to learn programming is by doing. Good luck on your JavaScript journey!


πŸ“ˆ Curriculum Statistics

  • β€’Total Modules: 25
  • β€’Total Sections: 122
  • β€’Total Files: 240+
  • β€’Total Lines of Code: 100,000+
  • β€’Examples per Topic: 15-30
  • β€’Exercises per Topic: 10-20

Last Updated: 2024

.3 Symbols - JavaScript Tutorial | DeepML