JavaScript Bible – JavaScript and ES6 Bootcamp 2019

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

JavaScript , ES6, Babel, NPM, Webpack – entire JavaScript Ecosystem in a one JavaScript Bootcamp course!

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 PRACTICE – IIFE – Immediately Invoked Function Expression
110 PRACTICE – Synchronous Code Execution
111 PRACTICE – Events and Events queue
112 PRACTICE – Callbacks – PART 1
113 PRACTICE – Callbacks – PART 2
114 PRACTICE – Closures

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

ES6 Arrow functions
141 GIT REPOSITORY FOR THIS SECTION
142 LECTURE – Introduction to the Arrow Functions Section
143 LECTURE – Traditional JavaScript Functions Overview
144 LECTURE – Introduction to the Arrow Functions
145 LECTURE – Arrow Functions syntax
146 PRACTICE – Arrow Functions
147 LECTURE – Arrow Functions and this
148 LECTURE – Regular functions instead of Arrow Functions
149 CHALLENGE 2-1 – Regular vs Arrow Functions
150 CHALLENGE 2-1 – Regular vs Arrow Functions – SOLUTION
151 LECTURE – Arguments in the Functions
152 LECTURE – Arrow Functions Summary

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

ES6 Template Literals
201 GIT REPOSITORY FOR THIS SECTION
202 LECTURE – Template Literals Overview
203 LECTURE – Tagged Templates Overview
204 CHALLENGE 4-1 Template Literals
205 CHALLENGE 4-1 Template Literals – SOLUTION
206 CHALLENGE 4-2 Default tagged template
207 CHALLENGE 4-2 Default tagged template – SOLUTION

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

ES6 Enhanced Object Literals
224 GIT REPOSITORY FOR THIS SECTION
225 LECTURE – Enhanced Object Literals Overview
226 PRACTICE – Enhanced Object Literals
227 CHALLENGE 6-1 Enhanced Object Literals
228 CHALLENGE 6-1 Enhanced Object Literals – SOLUTION

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

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

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

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

Webpack
347 PRACTICE – Webpack with Zero Configuration
348 PRACTICE – Webpack Dev Server

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

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