JavaScript Bible – Beginner JavaScript and ES6 Bootcamp 2019

JavaScript Bible – Beginner JavaScript and ES6 Bootcamp 2019
JavaScript Bible – Beginner JavaScript and ES6 Bootcamp 2019
English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 41.5 Hours | 25.7 GB

This course covers everything you need to know about JavaScript and become either Frontend Web developer, or Full-stack Web Developer, or Backend developer.

This course includes more than 70 CHALLENGES and all exercise files are available in Git repositories.

We will start from the very beginning and you will learn fundamentals and basic concepts of JavaScript.

Than you will learn new features included in ES6, ES7 etc.

Also we will dive into the Node.js – environment for JavaScript code execution and you will understand what is the difference between Web Browser and Node.js.

In separate sections we will discuss Babel, NPM, Webpack and MongoDB.

Also you will learn most popular JavaScript framework – React.

JavaScript Bible was designed for developers with different levels of JavaScript knowledge.

If you are BEGINNER in JavaScript – start with very first section called JavaScript Basics.

In case you have SOME experience with JavaScript – jump directly in the sections where I cover ES6 topics such as rest/spread parameters, arrow functions, ES6 Classes etc.

If you are experienced MIDDLE or SENIOR developer with years of JavaScript development background – jump directly into the Challenges and test your knowledge. Each challenge has task and solution in separate Git branches.

All videos have different labels:

LECTURE: in those videos I explain different features and concepts of the language. Main main goal in those videos is to teach you HOW specific feature work under the hood. I don’t teach HOW TO USE feature.

Instead I teach you WHY and HOW specific feature works.

PRACTICE: here I will dive into the coding and show you different real-world examples of the usage of specific feature. Usually I will present to you several examples for each specific feature. I strongly recommend you to follow me in those videos and code along with me.

CHALLENGE: each challenge (except simple and short challenges) has START and FINISH branches with task and solution. PLEASE don’t skip challenges even if you are already familiar with the topic. Try to solve each challenge yourself.

DEMO: in some videos I will demonstrate you examples where you don’t necessarily need to follow me and code along with me

If you want to become an Expert in JavaScript, please join this course now!

What you’ll learn

  • Become a Senior JavaScript developer by learning and practicing all modern features of the JavaScript. Become able easily apply to Web Developer, Frontend Developer, Backend Developer or Full Stack Web Developer jobs.
  • Learn JavaScript, ES6, NPM, Webpack, Babel, Node, React by solving tens of CHALLENGES with real-world scenarios. Each CHALLENGE has task and solution. And all of them are available in the GIT repositories that you will download at the beginning of the course.
  • Learn all FUNDAMENTAL features of the JavaScript starting from basic concepts such as Variables, Objects, Functions, Scopes, Operators and finishing with ADVANCED topics as Closures, Hoisting, IIFEs (Immediately Invoked Function Expressions), Classes and many more.
  • Learn and understand ES6 features such as Arrow functions, Destructuring, Default function parameters, Template Literals, Array helper methods, Classes
  • Understand proper methods to work with Arrays – map, forEach, reduce, filter, includes
  • Deeply understand purpose of the NPM – Node Package Manager
  • Learn and practice Babel – JavaScript Compiler
  • Learn basics of the most popular NoSQL database with JavaScript Engine – MongoDB
Table of Contents

Intro
1 Intro
2 Course Navigation

EXERCISE Files and SOFTWARE Setup
3 INTRO – Exercise Files and Software Setup
4 LECTURE – Software Setup Overview
5 PRACTICE – WINDOWS ONLY – Install cmder
6 PRACTICE – Visual Studio Code Setup
7 PRACTICE – Launch Node.js and execute test JavaScript file
8 PRACTICE – Git Overview – PART 1
9 PRACTICE – Git Overview – PART 2
10 PRACTICE – Clone remote GIt repository and switch Branches
11 PRACTICE – Use SourceTree for Git repositories management

JAVASCRIPT BASICS – Intro
12 INTRO – JAVASCRIPT BASICS – Intro
13 GIT REPOSITORY FOR THIS SECTION
14 PRACTICE – Exploring Web Sites in the Browser
15 PRACTICE – Create first HTML file and start Live Server
16 PRACTICE – Add favicon to the HTML file
17 PRACTICE – JavaScript embedded into the HTML
18 DEMO – Git branches management
19 PRACTICE – JavaScript in the separate file
20 CHALLENGE – External Scripts
21 CHALLENGE – External Scripts – SOLUTION
22 PRACTICE – JavaScript in the Console of the Browser

JAVASCRIPT BASICS – Types and Variables
23 INTRO – JAVASCRIPT BASICS – Types and Variables
24 LECTURE – Object in JavaScript
25 LECTURE – Primitive vs Reference Value Types
26 PRACTICE – Exploring Primitive Value Types
27 PRACTICE – Exploring Reference Type – Object
28 LECTURE – Variable declaration using var let and const
29 PRACTICE – Variable declaration and assignment
30 CHALLENGE – Variable Declaration and Assignment
31 CHALLENGE – Variables Reusage
32 LECTURE – Statically vs Dynamically typed Languages
33 PRACTICE – Dynamic typing in JavaScript

JAVASCRIPT BASICS – Objects
34 INTRO – JAVASCRIPT BASICS – Objects
35 LECTURE – Variety of Objects in JavaScript
36 LECTURE – Objects Modification
37 PRACTICE and CHALLENGES – Objects – PART 1
38 PRACTICE and CHALLENGES – Objects – PART 2
39 PRACTICE and CHALLENGES – Objects – PART 3
40 LECTURE – Global Objects – window and global
41 LECTURE – Methods of the Object

JAVASCRIPT BASICS – Functions
42 INTRO – JAVASCRIPT BASICS – Functions
43 LECTURE – Introduction to the Functions
44 LECTURE – Syntax of the Function
45 PRACTICE – Functions – PART 1
46 PRACTICE – Functions – PART 2
47 CHALLENGES – Functions – PART 1
48 CHALLENGES – Functions – PART 2
49 LECTURE – Function Expressions vs Function Declarations
50 PRACTICE – Function Expressions setTimout() setInterval()
51 CHALLENGE – Function Expressions
52 CHALLENGE – Function Expressions – SOLUTION

JAVASCRIPT BASICS – Operators
53 INTRO – JAVASCRIPT BASICS – Operators
54 LECTURE – Operators
55 LECTURE – Operands Unary vs Binary Operators and Notations
56 PRACTICE – Arithmetic Operators – PART 1
57 PRACTICE – Arithmetic Operators – PART 2
58 PRACTICE – Comparison Operators – PART 1
59 PRACTICE – Comparison Operators – PART 2
60 PRACTICE – Logical Operators – PART 1
61 PRACTICE – Logical Operators – PART 2
62 PRACTICE – Operators Precedence and Associativity
63 CHALLENGES – Operators – PART 1
64 CHALLENGES – Operators – PART 2

JAVASCRIPT BASICS – Expressions vs Statements
65 INTRO – JAVASCRIPT BASICS – Expressions vs Statements
66 LECTURE – Expressions vs Statements – PART 1
67 LECTURE – Expressions vs Statements – PART 2
68 PRACTICE – Expressions vs Statements – PART 1
69 PRACTICE – Expressions vs Statements – PART 2
70 CHALLENGES – Expressions vs Statements

JAVASCRIPT BASICS – Scopes
71 INTRO – JAVASCRIPT BASICS – Scopes
72 LECTURE – Scopes – PART 1
73 LECTURE – Scopes – PART 2
74 LECTURE – Undeclared Variables and use strict
75 PRACTICE – Scopes – PART 1
76 PRACTICE – Scopes – PART 2
77 CHALLENGES – Scopes

JAVASCRIPT BASICS – Arrays
78 INTRO – JAVASCRIPT BASICS – Arrays
79 LECTURE – Arrays
80 LECTURE – Array Methods
81 PRACTICE – Arrays – PART 1
82 PRACTICE – Arrays – PART 2
83 CHALLENGES – Arrays

JAVASCRIPT BASICS – Loops and Conditional Statements
84 LECTURE – Introduction to the Loops
85 LECTURE – for Loop
86 LECTURE – while Loop
87 LECTURE – do while Loop
88 LECTURE – for in and for of Loops
89 PRACTICE Loops – PART 1
90 PRACTICE Loops – PART 2
91 PRACTICE Loops – Looking for loops in a pubic JavaScript library
92 LECTURE – Conditional Statements – if if else and switch
93 LECTURE – Ternary Operator
94 PRACTICE – Conditional statements and ternary operator – PART 1
95 PRACTICE – Conditional statements and ternary operator – PART 2
96 CHALLENGES – Loops and Conditions – PART 1
97 CHALLENGES – Loops and Conditions – PART 2
98 CHALLENGES – Loops and Conditions – PART 3
99 CHALLENGES – for in and Ternary Operator

JAVASCRIPT BASICS – Advanced Topics
100 PRACTICE – Mutable vs Immutable Values
101 PRACTICE – typeof and instanceof Operators
102 PRACTICE – new Array new String
103 PRACTICE – new Object new Function
104 PRACTICE – Execution contexts and Execution contexts stack
105 PRACTICE – this
106 PRACTICE – call apply methods of the Function
107 PRACTICE – bind method of the Function
108 PRACTICE – pass by value vs pass by reference
109 UNDER CONSTRUCTION NOTICE

ES6 Variables Lifecycles
110 GIT REPOSITORY FOR THIS SECTION
111 LECTURE – Recap of the var
112 LECTURE – Scopes – Global Function and Block
113 LECTURE – let
114 LECTURE – const
115 LECTURE – Variables Usage Guidelines
116 LECTURE – Var Let or Const
117 CHALLENGE 1-1 – let var and const
118 CHALLENGE 1-1 – let var and const – SOLUTION
119 CHALLENGE 1-2 – let var and closures
120 CHALLENGE 1-2 – let var and closures – SOLUTION
121 LECTURE – JavaScript Engine Phases
122 LECTURE – Variable Lifecycle Phases
123 LECTURE – Var lifecycle
124 LECTURE – Undeclared variable lifecycle
125 LECTURE – Let lifecycle
126 LECTURE – Const lifecycle
127 LECTURE – Function lifecycle – Part 1
128 LECTURE – Function lifecycle – Part 2
129 LECTURE – What is finally hoisting
130 DEMO – Putting different variables lifecycles together
131 DEMO – Putting different variables lifecycles together – SOLUTION Part 1
132 DEMO – Putting different variables lifecycles together – SOLUTION Part 2
133 CHALLENGE 1-3 – Variable Lifecycles
134 CHALLENGE 1-3 – Variable Lifecycles – SOLUTION
135 LECTURE – Variables Phases Section Summary

ES6 Arrow functions
136 GIT REPOSITORY FOR THIS SECTION
137 LECTURE – Introduction to the Arrow Functions Section
138 LECTURE – Traditional JavaScript Functions Overview.
139 LECTURE – Introduction to the Arrow Functions
140 LECTURE – Arrow Functions syntax
141 PRACTICE – Arrow Functions
142 LECTURE – Arrow Functions and this.
143 LECTURE – Regular functions instead of Arrow Functions
144 CHALLENGE 2-1 – Regular vs Arrow Functions
145 CHALLENGE 2-1 – Regular vs Arrow Functions – SOLUTION
146 LECTURE – Arguments in the Functions
147 LECTURE – Arrow Functions Summary

ES5.1 Array Helper Methods
148 GIT REPOSITORY FOR THIS SECTION
149 LECTURE – forEach() Overview
150 PRACTICE – forEach()
151 CHALLENGE 3-1 – forEach() with Index
152 CHALLENGE 3-1 – forEach() with Index – SOLUTION
153 LECTURE – map() Overview
154 PRACTICE – map()
155 CHALLENGE 3-2 – map() JSON to Object
156 CHALLENGE 3-2 – map() JSON to Object – SOLUTION
157 LECTURE – filter() Overview
158 PRACTICE – filter()
159 LECTURE – find() Overview
160 PRACTICE – find()
161 CHALLENGE 3-3 – find() Single Post
162 CHALLENGE 3-3 – find() Single Post – SOLUTION
163 LECTURE – every() and some() Overview
164 PRACTICE – every() and some()
165 CHALLENGE 3-4 Is Array of Numbers Sorted
166 CHALLENGE 3-4 Is Array of Numbers Sorted – SOLUTION
167 CHALLENGE 3-5 Are Arrays Equal or not
168 CHALLENGE 3-5 Are Arrays Equal or not – SOLUTION
169 CHALLENGE 3-6 Check if Element is in Array
170 CHALLENGE 3-6 Check if Element is in Array – SOLUTION
171 LECTURE – includes() Overview
172 PRACTICE – includes()
173 CHALLENGE 3-7 Includes() with Array or Object
174 CHALLENGE 3-7 Includes() with Array or Object – SOLUTION
175 CHALLENGE 3-8 Push Element to Array if Not Exists
176 CHALLENGE 3-8 Push Element to Array if Not Exists – SOLUTION
177 LECTURE – reduce() Overview
178 PRACTICE – reduce()
179 CHALLENGE 3-9 Reduce Array of Objects
180 CHALLENGE 3-9 Reduce Array of Objects – SOLUTION
181 CHALLENGE 3-10 Reduce Array of Objects to Object
182 CHALLENGE 3-10 Reduce Array of Objects to Object – SOLUTION
183 LECTURE – Do you know how sort() works
184 LECTURE – Sorting Algorithms Overview
185 LECTURE – Stable vs Unstable Sort
186 LECTURE – sort() Overview
187 LECTURE – sort() without Arguments
188 LECTURE – sort() Analyze sorting algorithms
189 LECTURE – sort() Algorithms in different browsers
190 CHALLENGE 3-11 sort() Array of objects
191 CHALLENGE 3-11 sort() Array of objects – SOLUTION
192 CHALLENGE 3-12 sort() Long Array of objects
193 CHALLENGE 3-12 sort() Long Array of objects – SOLUTION
194 LECTURE – sort() Summary
195 LECTURE – Array helper methods Summary

ES6 Template Literals
196 GIT REPOSITORY FOR THIS SECTION
197 LECTURE – Template Literals Overview
198 LECTURE – Tagged Templates Overview
199 CHALLENGE 4-1 Template Literals
200 CHALLENGE 4-1 Template Literals – SOLUTION
201 CHALLENGE 4-2 Default tagged template
202 CHALLENGE 4-2 Default tagged template – SOLUTION

ES6 RestSpread Operators and Default Function Parameters
203 GIT REPOSITORY FOR THIS SECTION
204 LECTURE – Rest Parameters Overview
205 PRACTICE – Rest Parameters
206 LECTURE – Spread Operator Overview
207 PRACTICE – Spread Operator
208 CHALLENGE 5-1 Rest and Spread Operators
209 CHALLENGE 5-1 Rest and Spread Operators – SOLUTION
210 LECTURE – Default Function Parameters Overview
211 PRACTICE – Default Function Parameters
212 CHALLENGE 5-2 Default value without default parameters
213 CHALLENGE 5-2 Default value without default parameters – SOLUTION
214 CHALLENGE 5-3 Generate Missing Unique IDs
215 CHALLENGE 5-3 Generate Missing Unique IDs – SOLUTION PART 1
216 CHALLENGE 5-3 Generate Missing Unique IDs – SOLUTION PART 2
217 CHALLENGE 5-3 Generate Missing Unique IDs – SOLUTION PART 3
218 CHALLENGE 5-3 Generate Missing Unique IDs – SOLUTION PART 4

ES6 Enhanced Object Literals
219 GIT REPOSITORY FOR THIS SECTION
220 LECTURE – Enhanced Object Literals Overview
221 PRACTICE – Enhanced Object Literals
222 CHALLENGE 6-1 Enhanced Object Literals
223 CHALLENGE 6-1 Enhanced Object Literals – SOLUTION

ES6 Array and Object Destructuring
224 GIT REPOSITORY FOR THIS SECTION
225 LECTURE – Destructuring Overview
226 PRACTICE – Array Destructuring
227 CHALLENGE 6-2 Array Destructuring
228 CHALLENGE 6-2 Array Destructuring – SOLUTION
229 CHALLENGE 6-3 Destructure Result of the Function
230 CHALLENGE 6-3 Destructure Result of the Function – SOLUTION
231 PRACTICE – Object Destructuring – PART 1
232 LECTURE – New Variable Names and Default Values in Object Destructuring
233 PRACTICE – Object Destructuring – PART 2
234 CHALLENGE 6-4 Object Destructuring
235 CHALLENGE 6-4 Object Destructuring – SOLUTION
236 CHALLENGE 6-5 Object Destructuring and Array Helper Methods
237 CHALLENGE 6-5 Object Destructuring and Array Helper Methods – SOLUTION
238 CHALLENGE 6-6 Delete Object Properties
239 CHALLENGE 6-6 Delete Object Properties – SOLUTION

ES6 Classes Prototypes and Function Constructors
240 GIT REPOSITORY FOR THIS SECTION
241 LECTURE – Class-based vs Prototype-based
242 LECTURE – What is inheritance
243 LECTURE – Prototype Chain
244 LECTURE – proto and [[Prototype]]
245 LECTURE – What is Prototype
246 LECTURE – Dont reassign proto
247 LECTURE – Native Prototypes – PART 1
248 LECTURE – Native Prototypes – PART 2
249 LECTURE – Prototypal Inheritance in JavaScript
250 PRACTICE – Function Constructors – PART 1
251 LECTURE – Function Constructors Overview
252 PRACTICE – Function Constructors – PART 2
253 PRACTICE – Function Constructors – PART 3
254 LECTURE – Object.create() Overview
255 PRACTICE – Object.create()
256 PRACTICE – Function Constructors – PART 4
257 LECTURE – Function Constructors – New Prototype in the Chain
258 CHALLENGE 7-1 Insert Prototype Into the Existing Prototype Chain
259 CHALLENGE 7-1 Insert Prototype Into the Existing Prototype Chain – SOLUTION
260 LECTURE – instanceof and typeof in the Prototype Chain
261 CHALLENGE 7-2 Fix Mistakes in the Function Constructors
262 CHALLENGE 7-2 Fix Mistakes in the Function Constructors – SOLUTION
263 LECTURE – Classes – Overview
264 LECTURE – Classes vs Function Constructors
265 PRACTICE – Classes – PART 1
266 PRACTICE – Classes – PART 2
267 PRACTICE – Classes – PART 3
268 CHALLENGE 7-3 Convert Function Constructors to Classes
269 CHALLENGE 7-3 Convert Function Constructors to Classes – SOLUTION
270 CHALLENGE 7-4 Extend Array
271 CHALLENGE 7-4 Extend Array – SOLUTION
272 CHALLENGE 7-5 Custom Push Method for Arrays
273 CHALLENGE 7-5 Custom Push Method for Arrays – SOLUTION
274 LECTURE – React and ES6 Classes
275 CHALLENGE 7-6 Classes in React – Additional Button
276 CHALLENGE 7-6 Classes in React – Additional Button – SOLUTION

Babel Introduction
277 Babel Module Introduction
278 LECTURE – What is Compiler
279 LECTURE – Compiled vs Interpreted languages
280 LECTURE – Transpiler
281 LECTURE – Transpling vs Compiling
282 LECTURE – ES5 ES6 and JavaScript
283 LECTURE – What Babel does
284 LECTURE – Why do we need Babel
285 LECTURE – ES6 support by Browsers
286 LECTURE – How many browsers need compiled ES5 code
287 PRACTICE – Babel in action – ES6 Rest operator
288 PRACTICE – Compare performance – ES6 Rest Operator(Node.js)
289 PRACTICE – Compare Performance – ES6 Rest Operator (Google Chrome)
290 CHALLENGE – Compare Performance – ES6 Destructuring
291 CHALLENGE – Compare Performance – ES6 Destructurng – SOLUTION
292 LECTURE – What is User Agent
293 LECTURE – Serve different JS files to different browers
294 LECTURE – Different JS files on the server
295 PRACTICE – Browser detection on the client
296 CHALLENGE – Detect feature support in the Browser
297 CHALLENGE – Detect feature support in the Browser – SOLUTION
298 CHALLENGE – Insert different script tags into the DOM
299 CHALLENGE – Insert different script tags into the DOM – SOLUTION
300 LECTURE – How Babel Works
301 PRACTICE – Online Babel Compiler
302 LECTURE – Install Babel Globally
303 PRACTICE – Compile JS file using Babel
304 LECTURE – Plugins and Presets

NPM – Node Package Manager
305 LECTURE – Introduction to the NPM
306 PRACTICE – Exploring NPM packages
307 LECTURE – Package.json and init
308 LECTURE – Semantic Versioning
309 LECTURE – Packages Installation
310 PRACTICE – Install package in the project
311 CHALLENGE – Install Semver package
312 CHALLENGE – Install Semver Package – SOLUTION
313 PRACTICE – Install Browserslist – package with own dependencies
314 LECTURE – Dependencies and Development Dependencies
315 PRACTICE – Examine Development Dependencies
316 PRACTICE – Browser App vs Server Package
317 CHALLENGE – Clock Browser Application
318 CHALLENGE – Clock Browser Application – SOLUTION
319 LECTURE – Clock Challenge Summary
320 LECTURE – Browser App vs Public Package
321 PRACTICE – Exploring Package Information and Versions
322 PRACTICE – Installing Specific Package Version
323 LECTURE – Why package-lock.json file is needed
324 CHALLENGE – Reinstall old package version without lock file
325 CHALLENGE – Reinstall old package version without lock file – SOLUTION
326 LECTURE – How lock file is handled
327 LECTURE – Lock file summary
328 LECTURE – Update NPM packages overview
329 CHALLENGE – Update project dependencies
330 CHALLENGE – Update project dependencies – SOLUTION
331 LECTURE – Introduction to the NPM scripts
332 PRACTICE – Start npm script
333 CHALLENGE – Create prestart script
334 CHALLENGE – Create prestart script – SOLUTION
335 PRACTICE – Custom NPM scripts
336 CHALLENGE – Run NPM scripts simultaneously
337 CHALLENGE – Run NPM scripts simultaneously – SOLUTION
338 LECTURE – NPM .bin Folder with Executable Scripts
339 PRACTICE – Explore .bin Folder on the Mac
340 PRACTICE – Explore .bin Folder on Windows
341 LECTURE – NPM Scripts Wrap-Up

Webpack
342 UNDER CONSTRUCTION NOTICE
343 PRACTICE – Webpack with Zero Configuration
344 PRACTICE – Webpack Dev Server

Introduction to the MongoDB
345 LECTURE – Where MongoDB is used
346 LECTURE – Relational vs Document Databases
347 LECTURE – MongoDB Structure
348 LECTURE – MongoDB Shell and MongoDB Server
349 PRACTICE – Installation of the MongoDB on the local computer
350 PRACTICE – Launch MongoDB Server and connect to it from the MongoDB Shell
351 PRACTICE – MongoDB database in the Cloud
352 PRACTICE – Exploring MongoDB Shell
353 PRACTICE – Installing and Exploring Robo 3T (previously Robomongo)
354 LECTURE – JSON Overview
355 LECTURE – Difference between JSON and JavaScript Object
356 LECTURE – How Documents are stored in the Database – BSON Format
357 LECTURE – What is Extended JSON
358 LECTURE – Data Types representation in Extended JSON
359 LECTURE – How types are stored in BSON
360 PRACTICE – Creation of the new Collection
361 LECTURE – Insert Methods insertOne() and insertMany()
362 LECTURE – Sample Data Overview
363 PRACTICE – Insert Sample Documents into the Collection
364 LECTURE – Find Methods find() and findOne()
365 PRACTICE – Finding Documents
366 LECTURE – Query Operators Overview
367 PRACTICE – Finding Documents with Query Operators
368 LECTURE – Sort Limit and Skip helper methods
369 PRACTICE – Sort Limit and Skip
370 LECTURE – Update Methods updateOne() and updateMany()
371 LECTURE – Update Operators
372 PRACTICE – Updating Documents using Update Operators
373 LECTURE – Delete Methods deleteOne() and deleteMany()
374 PRACTICE – Deleting Documents
375 LECTURE – MongoDB Aggregation Framework
376 PRACTICE – Aggregating Documents
377 LECTURE – MongoDB Indexes
378 LECTURE – MongoDB Utilities
379 LECTURE – What is MongoDB Replica Set
380 LECTURE – MongoDB Drivers

Additional JavaScript Challenges
381 Intro to Additional JavaScript Challenges
382 EXERCISE FILES
383 Software Setup
384 CHALLENGE 1 – Sum numbers
385 CHALLENGE 1 – Sum numbers – SOLUTION
386 CHALLENGE 2 – Const
387 CHALLENGE 2 – Const – SOLUTION
388 CHALLENGE 3 – Let
389 CHALLENGE 3 – Let – SOLUTION
390 CHALLENGE 4 – Hoisting
391 CHALLENGE 4 – Hoisting – SOLUTION
392 CHALLENGE 5 – Ternary Operator
393 CHALLENGE 5 – Ternary Operator – SOLUTION
394 CHALLENGE 6 – Arrow Functions
395 CHALLENGE 6 – Arrow Functions – SOLUTION
396 CHALLENGE 7 – Default parameters
397 CHALLENGE 7 – Default parameters – SOLUTION
398 CHALLENGE 8 – Check presence of the function parameters
399 CHALLENGE 8 – Check presence of the function parameters – SOLUTION
400 CHALLENGE 9 – Object Destructuring
401 CHALLENGE 9 – Object Destructuring – SOLUTION
402 CHALLENGE 10 – Destructuring and Rest Operator
403 CHALLENGE 10 – Destructuring and Rest Operator – SOLUTION
404 CHALLENGE 11 – Spread Operator
405 CHALLENGE 11 – Spread Operator – SOLUTION
406 CHALLENGE 12 – Copy Array
407 CHALLENGE 12 – Copy Array – SOLUTION
408 CHALLENGE 13 – Template Literals
409 CHALLENGE 13 – Template Literals – SOLUTION
410 CHALLENGE 14 – Object Destructuring
411 CHALLENGE 14 – Object Destructuring – SOLUTION
412 CHALLENGE 15 – Iterate over String
413 CHALLENGE 15 – Iterate over String – SOLUTION
414 CHALLENGE 16 – Swap values of the two variables
415 CHALLENGE 16 – Swap values of the two variables – SOLUTION
416 CHALLENGE 17 – IIFE (Immediately Invoked Function Expression)
417 CHALLENGE 17 – IIFE (Immediately Invoked Function Expression) – SOLUTION
418 CHALLENGE 18 – Classes
419 CHALLENGE 18 – Classes – SOLUTION
420 CHALLENGE 19 – Iterate over Object
421 CHALLENGE 19 – Iterate over Object – SOLUTION
422 CHALLENGE 20 – Sum positive and negative numbers
423 CHALLENGE 20 – Sum positive and negative numbers – SOLUTION