[{"data":1,"prerenderedAt":597},["ShallowReactive",2],{"page-\u002Fjs":3},{"id":4,"title":5,"body":6,"description":589,"extension":590,"meta":591,"navigation":592,"path":593,"seo":594,"stem":595,"__hash__":596},"content\u002Fjs\u002Findex.md","JavaScript — Zero to Hero",{"type":7,"value":8,"toc":573},"minimark",[9,13,17,22,57,62,74,78,534,538,542,545,549,552,556,559,563,566,570],[10,11,5],"h1",{"id":12},"javascript-zero-to-hero",[14,15,16],"p",{},"A comprehensive, code-first JavaScript curriculum for mid-level developers advancing to senior roles. Every chapter is packed with production-grade examples, anti-patterns, edge cases, and gotchas that experienced engineers encounter in real codebases.",[18,19,21],"h2",{"id":20},"how-to-use-this-course","How to Use This Course",[23,24,25,33,39,45,51],"ol",{},[26,27,28,32],"li",{},[29,30,31],"strong",{},"Read sequentially"," if you're new to a topic — chapters build on each other",[26,34,35,38],{},[29,36,37],{},"Jump to any chapter"," if you're reviewing — each is self-contained",[26,40,41,44],{},[29,42,43],{},"Run the examples"," in a browser console, Node.js REPL, or an editor",[26,46,47,50],{},[29,48,49],{},"Check the Quick Quiz"," at the end of each chapter — if you can answer it, you understand the core concept",[26,52,53,56],{},[29,54,55],{},"Watch for ⚠️ Edge Cases"," — these are the gotchas that bite in production",[58,59,61],"h3",{"id":60},"prerequisites","Prerequisites",[63,64,65,68,71],"ul",{},[26,66,67],{},"Basic programming familiarity (any language)",[26,69,70],{},"A modern browser or Node.js 20+",[26,72,73],{},"An editor with syntax highlighting (VS Code recommended)",[18,75,77],{"id":76},"curriculum","Curriculum",[79,80,81,97],"table",{},[82,83,84],"thead",{},[85,86,87,91,94],"tr",{},[88,89,90],"th",{},"#",[88,92,93],{},"Topic",[88,95,96],{},"Why It Matters",[98,99,100,116,130,144,158,177,191,205,219,233,251,268,282,296,310,324,338,352,366,380,394,408,422,436,450,464,478,492,506,520],"tbody",{},[85,101,102,106,113],{},[103,104,105],"td",{},"01",[103,107,108],{},[109,110,112],"a",{"href":111},".\u002F01-introduction-and-setup","Introduction & Setup",[103,114,115],{},"Engine architecture, JIT compilation, event loop, memory model — the foundation for understanding all JS behavior",[85,117,118,121,127],{},[103,119,120],{},"02",[103,122,123],{},[109,124,126],{"href":125},".\u002F02-variables-and-data-types","Variables & Data Types",[103,128,129],{},"TDZ, type coercion, IEEE 754 floats, BigInt — avoid silent bugs from coercion and floating-point",[85,131,132,135,141],{},[103,133,134],{},"03",[103,136,137],{},[109,138,140],{"href":139},".\u002F03-operators-and-expressions","Operators & Expressions",[103,142,143],{},"Coercion algorithm, bitwise 32-bit, short-circuit evaluation — master the rules that govern every expression",[85,145,146,149,155],{},[103,147,148],{},"04",[103,150,151],{},[109,152,154],{"href":153},".\u002F04-control-flow","Control Flow",[103,156,157],{},"Truthiness, switch fall-through, finally trap, retry backoff — write correct conditionals and loops",[85,159,160,163,169],{},[103,161,162],{},"05",[103,164,165],{},[109,166,168],{"href":167},".\u002F05-functions-and-scope","Functions & Scope",[103,170,171,172,176],{},"Hoisting, arrow ",[173,174,175],"code",{},"this",", arguments, IIFE, default param TDZ — the building blocks of all JS code",[85,178,179,182,188],{},[103,180,181],{},"06",[103,183,184],{},[109,185,187],{"href":186},".\u002F06-strings-and-template-literals","Strings & Template Literals",[103,189,190],{},"UTF-16, surrogate pairs, tagged templates, normalization — handle text correctly across all Unicode",[85,192,193,196,202],{},[103,194,195],{},"07",[103,197,198],{},[109,199,201],{"href":200},".\u002F07-objects-and-properties","Objects & Properties",[103,203,204],{},"Descriptors, prototype chain, freeze, Proxy immutability — master the object model",[85,206,207,210,216],{},[103,208,209],{},"08",[103,211,212],{},[109,213,215],{"href":214},".\u002F08-arrays-and-array-methods","Arrays & Array Methods",[103,217,218],{},"Holes vs undefined, mutation methods, reduce, typed arrays — avoid array pitfalls",[85,220,221,224,230],{},[103,222,223],{},"09",[103,225,226],{},[109,227,229],{"href":228},".\u002F09-destructuring-and-spread","Destructuring & Spread",[103,231,232],{},"Pattern matching, null trap, safe defaults — write concise and safe data extraction",[85,234,235,238,244],{},[103,236,237],{},"10",[103,239,240],{},[109,241,243],{"href":242},".\u002F10-classes-and-prototypes","Classes & Prototypes",[103,245,246,247,250],{},"Prototypal inheritance, ",[173,248,249],{},"#private",", static blocks, mixins — OOP in JS done right",[85,252,253,256,265],{},[103,254,255],{},"11",[103,257,258],{},[109,259,261,262,264],{"href":260},".\u002F11-this-keyword","The ",[173,263,175],{}," Keyword",[103,266,267],{},"Four binding rules, arrow lexical, call\u002Fapply\u002Fbind internals — the most misunderstood keyword",[85,269,270,273,279],{},[103,271,272],{},"12",[103,274,275],{},[109,276,278],{"href":277},".\u002F12-closures-and-lexical-scope","Closures & Lexical Scope",[103,280,281],{},"Lexical environment, loop bug, memory leaks, debounce — master closures for functional patterns",[85,283,284,287,293],{},[103,285,286],{},"13",[103,288,289],{},[109,290,292],{"href":291},".\u002F13-higher-order-functions","Higher-Order Functions",[103,294,295],{},"map\u002Ffilter\u002Freduce, compose\u002Fpipe, curry, point-free, validators — the foundation of functional JS",[85,297,298,301,307],{},[103,299,300],{},"14",[103,302,303],{},[109,304,306],{"href":305},".\u002F14-modules","Modules",[103,308,309],{},"ESM 3 phases, live bindings, CommonJS, dynamic import, circular deps — organize code at scale",[85,311,312,315,321],{},[103,313,314],{},"15",[103,316,317],{},[109,318,320],{"href":319},".\u002F15-callbacks-and-the-event-loop","Callbacks & Event Loop",[103,322,323],{},"Microtask\u002Fmacrotask, queueMicrotask, blocking, starvation — understand execution order",[85,325,326,329,335],{},[103,327,328],{},"16",[103,330,331],{},[109,332,334],{"href":333},".\u002F16-promises","Promises",[103,336,337],{},"State machine, chaining, all\u002Frace\u002FallSettled\u002Fany, error propagation — modern async foundation",[85,339,340,343,349],{},[103,341,342],{},"17",[103,344,345],{},[109,346,348],{"href":347},".\u002F17-async-await","Async\u002FAwait",[103,350,351],{},"Desugaring to Promises, sequential vs concurrent, top-level await — write clean async code",[85,353,354,357,363],{},[103,355,356],{},"18",[103,358,359],{},[109,360,362],{"href":361},".\u002F18-error-handling","Error Handling",[103,364,365],{},"Error internals, custom hierarchy, async errors, global handlers — robust error strategies",[85,367,368,371,377],{},[103,369,370],{},"19",[103,372,373],{},[109,374,376],{"href":375},".\u002F19-the-dom","The DOM",[103,378,379],{},"Selection, live collections, DocumentFragment, MutationObserver, Shadow DOM — manipulate the page efficiently",[85,381,382,385,391],{},[103,383,384],{},"20",[103,386,387],{},[109,388,390],{"href":389},".\u002F20-events","Events",[103,392,393],{},"Capture\u002Fbubble, delegation, stopPropagation, CustomEvent, passive listeners — master browser events",[85,395,396,399,405],{},[103,397,398],{},"21",[103,400,401],{},[109,402,404],{"href":403},".\u002F21-web-storage-and-apis","Web Storage & APIs",[103,406,407],{},"localStorage, IndexedDB, Fetch streaming, Cache API — persist data and communicate with servers",[85,409,410,413,419],{},[103,411,412],{},"22",[103,414,415],{},[109,416,418],{"href":417},".\u002F22-timers-and-scheduling","Timers & Scheduling",[103,420,421],{},"setTimeout drift, rAF, debounce\u002Fthrottle implementations — control when code runs",[85,423,424,427,433],{},[103,425,426],{},"23",[103,428,429],{},[109,430,432],{"href":431},".\u002F23-functional-programming","Functional Programming",[103,434,435],{},"Pure functions, immutability, Either monad, Redux reducer — write predictable, testable code",[85,437,438,441,447],{},[103,439,440],{},"24",[103,442,443],{},[109,444,446],{"href":445},".\u002F24-design-patterns","Design Patterns",[103,448,449],{},"Module, Observer\u002FPub-Sub, Strategy, State Machine, Builder — proven solutions to common problems",[85,451,452,455,461],{},[103,453,454],{},"25",[103,456,457],{},[109,458,460],{"href":459},".\u002F25-testing","Testing",[103,462,463],{},"Vitest, vi.mock\u002Fvi.fn, DI for testability, TDD, snapshot testing — ensure correctness and prevent regressions",[85,465,466,469,475],{},[103,467,468],{},"26",[103,470,471],{},[109,472,474],{"href":473},".\u002F26-performance-and-optimization","Performance & Optimization",[103,476,477],{},"V8 hidden classes, closure leaks, benchmarking, lazy evaluation — make JS fast and memory-efficient",[85,479,480,483,489],{},[103,481,482],{},"27",[103,484,485],{},[109,486,488],{"href":487},".\u002F27-tooling-and-build-systems","Tooling & Build Systems",[103,490,491],{},"npm\u002Fpnpm, ESLint, Vite, tree-shaking, source maps — configure the modern JS toolchain",[85,493,494,497,503],{},[103,495,496],{},"28",[103,498,499],{},[109,500,502],{"href":501},".\u002F28-typescript-essentials","TypeScript Essentials",[103,504,505],{},"Structural typing, generics, conditional types, utility types, declaration files — add type safety to JS",[85,507,508,511,517],{},[103,509,510],{},"29",[103,512,513],{},[109,514,516],{"href":515},".\u002F29-security","Security",[103,518,519],{},"XSS, CSRF, CSP, prototype pollution, input validation — protect against common web vulnerabilities",[85,521,522,525,531],{},[103,523,524],{},"30",[103,526,527],{},[109,528,530],{"href":529},".\u002F30-exercises-and-projects","Exercises & Projects",[103,532,533],{},"State store, API client, virtual DOM, WebSocket chat, utilities — build production systems from scratch",[18,535,537],{"id":536},"track-overview","Track Overview",[58,539,541],{"id":540},"part-i-foundations-0110","Part I: Foundations (01–10)",[14,543,544],{},"Language fundamentals — types, scope, objects, arrays, classes. Master these before moving to async or browser topics.",[58,546,548],{"id":547},"part-ii-async-control-1118","Part II: Async & Control (11–18)",[14,550,551],{},"Closures, higher-order functions, modules, the event loop, Promises, async\u002Fawait, and error handling. The core of modern JavaScript.",[58,553,555],{"id":554},"part-iii-browser-apis-1922","Part III: Browser & APIs (19–22)",[14,557,558],{},"DOM manipulation, events, storage, network requests, and timers. Everything you need to build client-side applications.",[58,560,562],{"id":561},"part-iv-architecture-2325","Part IV: Architecture (23–25)",[14,564,565],{},"Functional programming, design patterns, and testing. Write maintainable, testable code at scale.",[58,567,569],{"id":568},"part-v-production-2630","Part V: Production (26–30)",[14,571,572],{},"Performance, tooling, TypeScript, security, and capstone projects. The skills that distinguish senior engineers.",{"title":574,"searchDepth":575,"depth":575,"links":576},"",2,[577,581,582],{"id":20,"depth":575,"text":21,"children":578},[579],{"id":60,"depth":580,"text":61},3,{"id":76,"depth":575,"text":77},{"id":536,"depth":575,"text":537,"children":583},[584,585,586,587,588],{"id":540,"depth":580,"text":541},{"id":547,"depth":580,"text":548},{"id":554,"depth":580,"text":555},{"id":561,"depth":580,"text":562},{"id":568,"depth":580,"text":569},"A comprehensive JavaScript curriculum covering engine internals, language fundamentals, async patterns, browser APIs, functional programming, design patterns, testing, performance, TypeScript, security, and production projects.","md",{},true,"\u002Fjs",{"title":5,"description":589},"js\u002Findex","yUeiBnaVqRQeu-0eJVdGJ2v2DqAFUxvkY4xPw5rCUDo",1789924649724]