Skip to content

Commit 2370abe

Browse files
committed
Add remaining modules to the table of contents
1 parent 0d586e4 commit 2370abe

File tree

4 files changed

+178
-59
lines changed

4 files changed

+178
-59
lines changed

FunctionalProgramming.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ This function is idempotent because it returns the same result when called multi
7474
---
7575
<br>
7676

77-
## Imperative Vs. Declarative
77+
## Imperative vs Declarative
7878

7979
<b>Imperative</b> code is code that tells the machine what to do and how to do it. <b>Declarative</b> code tells it what to do and what should happen.
8080

ObjectOrientedProgramming.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ Unlike protected ones, private fields are enforced by the language itself. That
484484
---
485485
<br>
486486

487-
## 4 Pillars of OOP
487+
## The Four Pillars of OOP
488488

489489
![4 Pillars of OOP](./Assets/PillarsOOP.png)
490490

README.md

Lines changed: 169 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -28,56 +28,175 @@
2828

2929
<!-- TABLE OF CONTENTS -->
3030
<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>
81200
</details>
82201

83202
<br />

Types.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Primitive types are data that only represent a single value. A variable of a pri
88

99
These six types are considered to be primitives. A primitive is not an object and has no methods of its own. All primitives are immutable.
1010

11-
#### 1. Number
11+
#### Number
1212

1313
```javascript
1414
const num = 5;
@@ -17,15 +17,15 @@ const num = 12.34;
1717

1818
The number type represents both integer and floating point numbers
1919

20-
#### 2. String
20+
#### String
2121

2222
```javascript
2323
let str = "Hello";
2424
```
2525

2626
A string in JavaScript must be surrounded by quotes.
2727

28-
#### 3. Boolean
28+
#### Boolean
2929

3030
The boolean type has only two values: `true` and `false`.
3131

@@ -34,15 +34,15 @@ let yes = true;
3434
let no = false;
3535
```
3636

37-
#### 4. Null
37+
#### Null
3838

3939
`null` is the absence of a value. It’s a special value which represents “nothing”, “empty”.
4040

4141
```javascript
4242
let name = null;
4343
```
4444

45-
#### 5. Undefined
45+
#### Undefined
4646

4747
`undefined` means “value is not assigned”. If a variable is declared, but not assigned, then its value is undefined.
4848

@@ -51,7 +51,7 @@ let x;
5151
alert(x); // -> "undefined"
5252
```
5353

54-
#### 6. Symbol
54+
#### Symbol
5555

5656
The `symbol` type is used to create unique identifiers for objects.
5757

@@ -65,7 +65,7 @@ Everything else is an `object` type.
6565

6666
A non-primitive type doesn't contain the actual value directly. Instead it contains a reference to somewhere in memory where the value is stored.
6767

68-
#### 7. Object
68+
#### Object
6969

7070
The `object` type is special. All other types are called “primitive” because their values can contain only a single thing (be it a string or a number or whatever). In contrast, objects are used to store collections of data and more complex entities.
7171

0 commit comments

Comments
 (0)