1. Get Started with JavaScript .mp4
01:21
2. What is JavaScript used for .mp4
15:39
3. Run JavaScript in The Browser Console .mp4
07:19
4. Run JavaScript with HTML .mp4
14:24
5. Run JavaScript with Node.js .mp4
07:46
6. Introduction .mp4
00:50
7. Declaring Variables in JavaScript .mp4
13:12
8. If, Else, and Else If in JavaScript .mp4
08:10
9. JavaScripts Many Different For-Loops .mp4
16:54
10. While-Loops in JavaScript .mp4
06:45
11. Introduction -3.mp4
00:45
12. Weak vs. Strong Typing and Dynamic vs. Static Typing .mp4
10:45
13. Numbers in JavaScript .mp4
12:01
14. Strings in JavaScript .mp4
09:34
15. Booleans in JavaScript .mp4
13:27
16. Introduction -5.mp4
00:45
17. Objects in JavaScript .mp4
20:54
18. Arrays in JavaScript .mp4
09:05
19. Functions in JavaScript .mp4
14:22
20. BigInts, Symbols, and Undefined in JavaScript .mp4
12:11
21. Introduction -7.mp4
00:53
22. Let Variables vs. Var Variables .mp4
13:43
23. Double- and Triple-Equals Comparisons in JavaScript .mp4
16:05
24. Built-in Errors in JavaScript .mp4
13:29
25. Try-Catch Blocks in JavaScript .mp4
07:33
26. Introduction .mp4
00:48
27. JavaScript Array Basics .mp4
08:12
28. Using the Spread Operator with Arrays .mp4
13:12
29. Array Equality and Passing by Reference .mp4
14:06
30. Deep-Equals Testing with Arrays .mp4
13:48
31. Introduction .mp4
00:52
32. The Array Constructor and .fill Method .mp4
13:02
33. The .shift and .unshift Methods .mp4
08:11
34. The .splice and .slice Methods .mp4
13:06
35. The .toString and .join Methods .mp4
04:14
36. The .includes, .indexOf, and .lastIndexOf Methods .mp4
09:58
37. Introduction -3.mp4
00:48
38. The .forEach Method .mp4
10:33
39. The .find and .findIndex Methods .mp4
12:07
40. The .filter Method .mp4
08:40
41. The .some and .every Methods .mp4
08:12
42. The .map and .flatMap Methods .mp4
10:59
43. Introduction .mp4
00:56
44. JavaScript Object Basics .mp4
09:07
45. The Spread Operator and Object Destructuring .mp4
18:22
46. Object Equality and Passing by Reference .mp4
14:22
47. Deep-Equals Testing with Objects .mp4
15:33
48. Introduction .mp4
00:47
49. The .keys and .values Methods .mp4
09:07
50. The .entries and .fromEntries Methods .mp4
11:08
51. The .assign Method .mp4
08:35
52. The .freeze and .isFrozen Methods .mp4
09:13
53. The .preventExtensions and .isExtensible Methods .mp4
08:11
54. Introduction -3.mp4
00:52
55. The .reduce Method Basics .mp4
14:02
56. Intermediate .reduce Use Cases .mp4
14:49
57. Advanced .reduce Use Cases .mp4
08:58
58. The .reduceRight Method and Starting Values .mp4
07:42
59. Introduction .mp4
01:35
60. Calculate Array Min and Max .mp4
19:51
61. Recreating Built-in Methods with Reduce .mp4
18:19
62. Removing Duplicates .mp4
10:26
63. Introduction .mp4
01:14
64. Installing Lodash into a Node.js Project .mp4
14:44
65. Adding Lodash to a Front-end Project .mp4
08:37
66. Calling Basic Lodash Functions .mp4
16:07
67. Extra Array Function Arguments .mp4
09:22
68. Introduction .mp4
00:45
69. Main Groups of Lodash Functions .mp4
06:59
70. The .pull and .pullAll Functions .mp4
09:06
71. The .pullAllBy, .pullAllWith, and .pullAt Functions .mp4
17:46
72. The .uniq and .sortedUniq Functions .mp4
15:21
73. Introduction .mp4
01:04
74. The Four Main Function Groups .mp4
06:09
75. The .intersection Functions .mp4
20:42
76. The .difference Functions .mp4
09:06
77. The .union Functions .mp4
06:10
78. The .xor Functions .mp4
05:48
79. The By Transform Function .mp4
07:42
80. Introduction .mp4
01:10
81. JavaScripts Built-in .sort Method .mp4
05:37
82. Sorting with Comparator Functions .mp4
13:03
83. Preventing Array Mutation .mp4
09:02
84. Sorting Arrays of Objects and Arrays .mp4
19:05
85. Lodash Sorting Functions .mp4
10:48
86. Introduction .mp4
00:47
87. Basic Function Syntax .mp4
15:44
88. The arguments Object .mp4
12:21
89. Default Arguments in Functions .mp4
09:52
90. Functions Inside Objects .mp4
10:45
91. Introduction .mp4
00:52
92. The .flatten, .flattenDeep, and .flattenDepth Functions .mp4
21:21
93. The .chunk and .partition Functions .mp4
19:24
94. The .zip and .unzip Functions .mp4
09:35
95. Introduction .mp4
01:17
96. The .toPairs and .fromPairs Functions .mp4
17:32
97. The .zipObject and .zipObjectDeep Functions .mp4
12:14
98. The .countBy and .groupBy Functions .mp4
19:56
99. Introduction -3.mp4
01:22
100. Creating New Dates .mp4
14:50
101. Accessing Time Units .mp4
14:29
102. Date Setter Methods .mp4
14:23
103. Introduction .mp4
00:40
104. Basic Class Syntax .mp4
17:36
105. Defining Methods and Static Variables .mp4
13:37
106. JavaScript Class Inheritance .mp4
18:49
107. Introduction -3.mp4
01:03
108. Pre-ES6 JavaScript Classes .mp4
15:46
109. The instanceof Keyword .mp4
09:45
110. Prototypal Inheritance Basics .mp4
18:46
111. Interfaces in JavaScript .mp4
09:13
112. Introduction -5.mp4
01:06
113. The 3 Main Asynchronous Strategies .mp4
09:31
114. Asynchronous Programming with Callbacks .mp4
14:01
115. Callback Examples .mp4
18:23
116. Asynchronous Programming with Promises .mp4
13:24
117. Asynchronous Programming with Async and Await .mp4
06:23
118. Introduction .mp4
01:04
119. Setting Up an Express Project .mp4
09:47
120. Creating an Express Server .mp4
11:45
121. Adding Basic Request Handlers .mp4
11:20
122. Separating Express Routes by Path .mp4
13:30
123. Introduction .mp4
01:07
124. Handling Different Request Types .mp4
08:50
125. Testing POST, PUT, and DELETE Routes .mp4
12:35
126. Handling a Request Body .mp4
19:56
127. Handling URL and Query Parameters .mp4
12:38
128. Introduction .mp4
00:54
129. Methods for Customizing Responses .mp4
16:45
130. Working with Cookies .mp4
13:45
131. Adding Middleware to Express Servers .mp4
18:46
132. Introduction -3.mp4
00:54
133. Creating a List Endpoint .mp4
01:54
134. Creating a Read Endpoint .mp4
06:39
135. Creating a Search Endpoint .mp4
09:57
136. Creating a Create Endpoint .mp4
11:25
137. Creating Delete and Update Endpoints .mp4
11:00
138. Introduction .mp4
01:12
139. In-Depth String Details .mp4
16:55
140. Array-Related String Methods .mp4
22:18
141. Colorizing Strings with Chalk .mp4
06:44
142. Introduction .mp4
01:30
143. Basics of the FS Package .mp4
21:35
144. Reading Files .mp4
14:21
145. Writing Data to Files .mp4
10:48
146. Introduction .mp4
01:15
147. Command-Line Arguments in Node.js .mp4
17:37
148. Parsing Flags in Command-Line Arguments .mp4
13:48
149. Boolean Flags and Flags with Multiple Values .mp4
14:21
150. Introduction .mp4
01:53
151. Getting User Input with Prompts .mp4
13:17
152. The Readline Promises Package .mp4
10:30
153. Strategies for Displaying Multiple Prompts .mp4
11:39
154. Collecting Multi-Line Input .mp4
14:24
155. Introduction .mp4
01:46
156. Basic Functions for Console Drawing .mp4
21:16
157. Drawing a Square .mp4
09:54
158. Creating a Draw Rectangle Function .mp4
16:50
159. Introduction .mp4
01:26
160. Basic 4-Bit Console Color Syntax .mp4
16:42
161. 8-Bit and RGB Console Color Syntax .mp4
12:25
162. Other Font Decorations .mp4
05:43
163. Creating Color Helper Functions .mp4
15:32
164. Introduction -3.mp4
00:52
165. Creating a Basic Loading Animation .mp4
21:01
166. Creating an Animated Loading Bar .mp4
14:48
167. Position Adjustments for Animations .mp4
07:24
168. Displaying Progress for Real Tasks .mp4
06:41
169. Introduction -5.mp4
01:38
170. Designing the Game .mp4
08:57
171. The Main Game Loop .mp4
14:56
172. Displaying Player Moves on the Grid .mp4
06:57
173. Tracking Player Moves .mp4
09:08
174. Displaying the Tic-Tac-Toe Grid .mp4
07:31
175. Introduction -7.mp4
00:46
176. Deciding Who Wins and Ending the Game .mp4
18:29
177. Calculating Vertical, Diagonal, and Corner Wins .mp4
11:25
178. Validating and Parsing User Input .mp4
14:36
179. Introduction -9.mp4
01:33
180. Basics of Websockets .mp4
12:58
181. Setting Up A Socket.io Client and Server .mp4
13:55
182. Sending and Handling Socket Events .mp4
10:34
183. Creating a Simple Chat-Room Program .mp4
14:39
184. Introduction 1.mp4
01:32
185. Creating Client-Side and Server-Side Programs .mp4
12:35
186. Basic Server-Client Communication Strategy .mp4
10:26
187. Waiting for Other Players to Join .mp4
11:34
188. Hosting Node.js Servers on Heroku .mp4
13:39
189. Introduction 3.mp4
00:48
190. Starting the Game and Printing the Grid .mp4
10:13
191. Getting Player Input Remotely .mp4
14:48
192. Ending the Game Remotely .mp4
13:34
193. Validating Input and Releasing Updates .mp4
08:42
194. Introduction 5.mp4
01:01
195. Calculating Cats Games .mp4
12:01
196. Rethinking the Player Management Strategy .mp4
20:30
197. Managing Multiple Games .mp4
13:55
198. Introduction 7.mp4
01:03
199. Making Sure Positions are Empty .mp4
10:30
200. Publishing the Client-Side Script to NPM .mp4
08:11
201. Joining Games by ID .mp4
16:29
202. Handling Different Join Methods .mp4
18:26