|
28 | 28 |
|
29 | 29 | <!-- TABLE OF CONTENTS -->
|
30 | 30 | <details open>
|
31 |
| - <summary>Table of Contents</summary> |
32 |
| - <ol> |
33 |
| - <li> |
34 |
| - <h3><a href="/Foundations.md">JavaScript Foundations</a></h3> |
35 |
| - <ul> |
36 |
| - <li><a href="/Foundations.md/#javascript-engine">JS Engine</a></li> |
37 |
| - <li><a href="/Foundations.md/#interpreter">Interpreter</a></li> |
38 |
| - <li><a href="/Foundations.md/#compiler">Compiler</a></li> |
39 |
| - <li><a href="/Foundations.md/#ecmascript">ECMAScript</a></li> |
40 |
| - <li><a href="/Foundations.md/#writing-optimised-code">Writing optimised code</a></li> |
41 |
| - <li><a href="/Foundations.md/#inline-caching">Inline Caching</a></li> |
42 |
| - <li><a href="/Foundations.md/#hidden-classes">Hidden Classes</a></li> |
43 |
| - <li><a href="/Foundations.md/#call-stack">Call Stack</a></li> |
44 |
| - <li><a href="/Foundations.md/#memory-heap">Memory Heap</a></li> |
45 |
| - <ul> |
46 |
| - <li><a href="/Foundations.md/#garbage-collection">Garbage Collection</a></li> |
47 |
| - <li><a href="/Foundations.md/#memory-leaks">Memory Leaks</a></li> |
48 |
| - </ul> |
49 |
| - <li><a href="/Foundations.md/#javascript-runtime">JavaScript Runtime</a></li> |
50 |
| - <ul> |
51 |
| - <li><a href="/Foundations.md/#web-browser-api">Web Browser API</a></li> |
52 |
| - <li><a href="/Foundations.md/#the-heap">The Heap</a></li> |
53 |
| - <li><a href="/Foundations.md/#the-stack">The Stack</a></li> |
54 |
| - <li><a href="/Foundations.md/#the-web-api-container">The Web API Container</a></li> |
55 |
| - <li><a href="/Foundations.md/#the-callback-queue">The Callback Queue</a></li> |
56 |
| - <li><a href="/Foundations.md/#the-event-loop">The Event Loop</a></li> |
57 |
| - </ul> |
58 |
| - <li><a href="/Foundations.md/#node.js">Node.js</a></li> |
59 |
| - <li><a href="/Foundations.md/#lexical-environment">Lexical Environment</a></li> |
60 |
| - <li><a href="/Foundations.md/#scope">Scope</a></li> |
61 |
| - <li><a href="/Foundations.md/#execution-context">Execution Context</a></li> |
62 |
| - <ul> |
63 |
| - <li><a href="/Foundations.md/#global-execution-context">Global Execution Context</a></li> |
64 |
| - <li><a href="/Foundations.md/#functional-execution-context">Functional execution context</a></li> |
65 |
| - </ul> |
66 |
| - <li><a href="/Foundations.md/#hoisting">Hoisting</a></li> |
67 |
| - <li><a href="/Foundations.md/#scope-chain">Scope Chain</a></li> |
68 |
| - <li><a href="/Foundations.md/#this">This</a></li> |
69 |
| - <li><a href="/Foundations.md/#function-currying">Function Currying</a></li> |
70 |
| - <li><a href="/Foundations.md/#context-vs-scope">Context vs Scope</a></li> |
71 |
| - </ul> |
72 |
| - </li> |
73 |
| - <li> |
74 |
| - <h3><a href="#getting-started">Getting Started</a></h3> |
75 |
| - <ul> |
76 |
| - <li><a href="#prerequisites">Prerequisites</a></li> |
77 |
| - <li><a href="#setup">Setup</a></li> |
78 |
| - </ul> |
79 |
| - </li> |
80 |
| - </ol> |
| 31 | + <summary>Table of Contents</summary> |
| 32 | + <ol> |
| 33 | + <li> |
| 34 | + <h3><a href="/Foundations.md">JavaScript Foundations</a></h3> |
| 35 | + <ul> |
| 36 | + <li><a href="/Foundations.md/#javascript-engine">JS Engine</a></li> |
| 37 | + <li><a href="/Foundations.md/#interpreter">Interpreter</a></li> |
| 38 | + <li><a href="/Foundations.md/#compiler">Compiler</a></li> |
| 39 | + <li><a href="/Foundations.md/#ecmascript">ECMAScript</a></li> |
| 40 | + <li><a href="/Foundations.md/#writing-optimised-code">Writing optimised code</a></li> |
| 41 | + <li><a href="/Foundations.md/#inline-caching">Inline Caching</a></li> |
| 42 | + <li><a href="/Foundations.md/#hidden-classes">Hidden Classes</a></li> |
| 43 | + <li><a href="/Foundations.md/#call-stack">Call Stack</a></li> |
| 44 | + <li><a href="/Foundations.md/#memory-heap">Memory Heap</a></li> |
| 45 | + <ul> |
| 46 | + <li>Garbage Collection</li> |
| 47 | + <li>Memory Leaks</li> |
| 48 | + </ul> |
| 49 | + <li><a href="/Foundations.md/#javascript-runtime">JavaScript Runtime</a></li> |
| 50 | + <ul> |
| 51 | + <li>Web Browser API</li> |
| 52 | + <li>The Heap</li> |
| 53 | + <li>The Stack</li> |
| 54 | + <li>The Web API Container</li> |
| 55 | + <li>The Callback Queue</li> |
| 56 | + <li>The Event Loop</li> |
| 57 | + </ul> |
| 58 | + <li><a href="/Foundations.md/#node.js">Node.js</a></li> |
| 59 | + <li><a href="/Foundations.md/#lexical-environment">Lexical Environment</a></li> |
| 60 | + <li><a href="/Foundations.md/#scope">Scope</a></li> |
| 61 | + <li><a href="/Foundations.md/#execution-context">Execution Context</a></li> |
| 62 | + <ul> |
| 63 | + <li>Global Execution Context</li> |
| 64 | + <li>Functional execution context</li> |
| 65 | + </ul> |
| 66 | + <li><a href="/Foundations.md/#hoisting">Hoisting</a></li> |
| 67 | + <li><a href="/Foundations.md/#scope-chain">Scope Chain</a></li> |
| 68 | + <li><a href="/Foundations.md/#this">This</a></li> |
| 69 | + <li><a href="/Foundations.md/#function-currying">Function Currying</a></li> |
| 70 | + <li><a href="/Foundations.md/#context-vs-scope">Context vs Scope</a></li> |
| 71 | + </ul> |
| 72 | + </li> |
| 73 | + <li> |
| 74 | + <h3><a href="/Types.md">Types</a></h3> |
| 75 | + <ul> |
| 76 | + <li><a href="/Types.md/#primitive-types">Primitive Types</a></li> |
| 77 | + <ul> |
| 78 | + <li>Number</li> |
| 79 | + <li>String</li> |
| 80 | + <li>Boolean</li> |
| 81 | + <li>Null</li> |
| 82 | + <li>Undefined</li> |
| 83 | + <li>Symbol</li> |
| 84 | + </ul> |
| 85 | + <li><a href="/Types.md/#non-primitive-types">Non Primitive Types</a></li> |
| 86 | + <ul> |
| 87 | + <li>Object</li> |
| 88 | + </ul> |
| 89 | + <li><a href="/Types.md/#pass-by-value">Pass By Value (primitives)</a></li> |
| 90 | + <li><a href="/Types.md/#pass-by-reference">Pass by Reference (objects)</a></li> |
| 91 | + <li><a href="/Types.md/#type-coercion">Type Coercion</a></li> |
| 92 | + </ul> |
| 93 | + </li> |
| 94 | + <li> |
| 95 | + <h3><a href="/ClosuresPrototypalInheritance.md">Closures and Prototypal Inheritance</a></h3> |
| 96 | + <ul> |
| 97 | + <li><a href="/ClosuresPrototypalInheritance.md/#higher-order-functions">Higher Order Functions</a></li> |
| 98 | + <li><a href="/ClosuresPrototypalInheritance.md/#closures">Closures</a></li> |
| 99 | + <ul> |
| 100 | + <li>Memory efficiency</li> |
| 101 | + <li>Encapsulation</li> |
| 102 | + </ul> |
| 103 | + <li><a href="/ClosuresPrototypalInheritance.md/#prototypal-inheritance">Prototypal Inheritance</a></li> |
| 104 | + <ul> |
| 105 | + <li>Manually creating a prototype chain</li> |
| 106 | + <li>Inheritance using Object.create()</li> |
| 107 | + <li>Only functions have the .prototype property</li> |
| 108 | + </ul> |
| 109 | + </ul> |
| 110 | + </li> |
| 111 | + <li> |
| 112 | + <h3><a href="/ObjectOrientedProgramming.md">Object Oriented Programming</a></h3> |
| 113 | + <ul> |
| 114 | + <li><a href="/ObjectOrientedProgramming.md/#class-based-vs-prototype-based">Class-based vs Prototype-based</a></li> |
| 115 | + <li><a href="/ObjectOrientedProgramming.md/#factory-functions">Factory Functions</a></li> |
| 116 | + <ul> |
| 117 | + <li>Using Object.create()</li> |
| 118 | + <li>Using Constructor Functions</li> |
| 119 | + <li>Using ES6 Classes</li> |
| 120 | + </ul> |
| 121 | + <li><a href="/ObjectOrientedProgramming.md/#more-of-this">More of 'This'</a></li> |
| 122 | + <ul> |
| 123 | + <li>Implicit Binding</li> |
| 124 | + <li>Explicit Binding</li> |
| 125 | + <li>New Binding</li> |
| 126 | + <li>Lexical Binding</li> |
| 127 | + <li>Window Binding</li> |
| 128 | + </ul> |
| 129 | + <li><a href="/ObjectOrientedProgramming.md/#inheritance">Inheritance</a></li> |
| 130 | + <li><a href="/ObjectOrientedProgramming.md/#public-&-private">Public & Private - Protected properties and methods</a></li> |
| 131 | + <ul> |
| 132 | + <li>Internal and external interface</li> |
| 133 | + <li>Protected properties</li> |
| 134 | + <li>Read-only properties</li> |
| 135 | + <li>Private properties</li> |
| 136 | + </ul> |
| 137 | + <li><a href="/ObjectOrientedProgramming.md/#the-four-pillars-of-oop">The Four Pillars of OOP</a></li> |
| 138 | + <ul> |
| 139 | + <li>1. Encapsulation</li> |
| 140 | + <li>2. Abstraction</li> |
| 141 | + <li>3. Inheritance</li> |
| 142 | + <li>4. Polymorphism</li> |
| 143 | + </ul> |
| 144 | + </ul> |
| 145 | + </li> |
| 146 | + <li> |
| 147 | + <h3><a href="/FunctionalProgramming.md">Functional Programming</a></h3> |
| 148 | + <ul> |
| 149 | + <li><a href="/FunctionalProgramming.md/#pure-functions">Pure Functions</a></li> |
| 150 | + <li><a href="/FunctionalProgramming.md/#idempotence">Idempotence</a></li> |
| 151 | + <li><a href="/FunctionalProgramming.md/#imperative-vs-declarative">Imperative vs Declarative</a></li> |
| 152 | + <li><a href="/FunctionalProgramming.md/#immutability">Immutability</a></li> |
| 153 | + <li><a href="/FunctionalProgramming.md/#higher-order-functions">Higher Order Functions</a></li> |
| 154 | + <li><a href="/FunctionalProgramming.md/#currying">Currying</a></li> |
| 155 | + <li><a href="/FunctionalProgramming.md/#partial-application">Partial Application</a></li> |
| 156 | + </ul> |
| 157 | + </li> |
| 158 | + <li> |
| 159 | + <h3><a href="/OOPvsFP.md">Object Oriented Programming vs Functional Programming</a></h3> |
| 160 | + <ul> |
| 161 | + <li><a href="/OOPvsFP.md/#key-differences">Key Differences</a></li> |
| 162 | + <li><a href="/OOPvsFP.md/#inheritance-vs-composition">Inheritance vs Composition</a></li> |
| 163 | + </ul> |
| 164 | + </li> |
| 165 | + <li> |
| 166 | + <h3><a href="/AsyncJS.md">Asynchronous JavaScript</a></h3> |
| 167 | + <ul> |
| 168 | + <li><a href="/AsyncJS.md/#how-does-the-browser-execute-asynchronous-code?">How Does the Browser Execute Asynchronous Code?</a></li> |
| 169 | + <li><a href="/AsyncJS.md/#javascript's-execution">JavaScript's Execution</a></li> |
| 170 | + <ul> |
| 171 | + <li>The thread of execution</li> |
| 172 | + <li>Deferred code execution</li> |
| 173 | + <li>Web APIs</li> |
| 174 | + </ul> |
| 175 | + <li><a href="/AsyncJS.md/#callbacks">Callbacks</a></li> |
| 176 | + <ul> |
| 177 | + <li>Callback hell</li> |
| 178 | + </ul> |
| 179 | + <li><a href="/AsyncJS.md/#promises">Promises</a></li> |
| 180 | + <li><a href="/AsyncJS.md/#async/await">Async/Await</a></li> |
| 181 | + <li><a href="/AsyncJS.md/#es9">ES9</a></li> |
| 182 | + <ul> |
| 183 | + <li>Array Destructuring</li> |
| 184 | + <li>Array Literals</li> |
| 185 | + <li>Object Destructuring</li> |
| 186 | + <li>Object Literals</li> |
| 187 | + <li>Finally</li> |
| 188 | + <li>For await of</li> |
| 189 | + <li>Job Queue</li> |
| 190 | + <li>Parallel, Sequence, Race</li> |
| 191 | + <li>Threads</li> |
| 192 | + <li>Concurrency and Parallelism</li> |
| 193 | + </ul> |
| 194 | + </ul> |
| 195 | + </li> |
| 196 | + <li> |
| 197 | + <h3><a href="/Modules.md">The Module Pattern</a></h3> |
| 198 | + </li> |
| 199 | + </ol> |
81 | 200 | </details>
|
82 | 201 |
|
83 | 202 | <br />
|
|
0 commit comments