INTRO - Exercise Files and Software Setup
LECTURE - Software Setup Overview
PRACTICE - WINDOWS ONLY - Install "cmder"
PRACTICE - Visual Studio Code Setup
PRACTICE - Launch Node.js and execute test JavaScript file
PRACTICE - Git Overview - PART 1
PRACTICE - Git Overview - PART 2
PRACTICE - Clone remote GIt repository and switch Branches
PRACTICE - Use SourceTree for Git repositories management
INTRO - JAVASCRIPT BASICS - Intro
GIT REPOSITORY FOR THIS SECTION
PRACTICE - Exploring Web Sites in the Browser
PRACTICE - Create first HTML file and start Live Server
PRACTICE - Add favicon to the HTML file
PRACTICE - JavaScript embedded into the HTML
DEMO - Git branches management
PRACTICE - JavaScript in the separate file
CHALLENGE - External Scripts
✓ CHALLENGE - External Scripts - SOLUTION
PRACTICE - JavaScript in the Console of the Browser
INTRO - JAVASCRIPT BASICS - Types and Variables
LECTURE - Object in JavaScript
LECTURE - Primitive vs Reference Value Types
PRACTICE - Exploring Primitive Value Types
PRACTICE - Exploring Reference Type - Object
LECTURE - Variable declaration using "var" "let" and "const"
PRACTICE - Variable declaration and assignment
CHALLENGE - Variable Declaration and Assignment
CHALLENGE - Variables Reusage
LECTURE - Statically vs Dynamically typed Languages
PRACTICE - Dynamic typing in JavaScript
INTRO - JAVASCRIPT BASICS - Objects
LECTURE - Variety of Objects in JavaScript
LECTURE - Objects Modification
PRACTICE and CHALLENGES - Objects - PART 1
PRACTICE and CHALLENGES - Objects - PART 2
PRACTICE and CHALLENGES - Objects - PART 3
LECTURE - Global Objects - "window" and "global"
LECTURE - Methods of the Object
INTRO - JAVASCRIPT BASICS - Functions
LECTURE - Introduction to the Functions
LECTURE - Syntax of the Function
PRACTICE - Functions - PART 1
PRACTICE - Functions - PART 2
CHALLENGES - Functions - PART 1
CHALLENGES - Functions - PART 2
LECTURE - Function Expressions vs Function Declarations
PRACTICE - Function Expressions setTimout() setInterval()
CHALLENGE - Function Expressions
✓ CHALLENGE - Function Expressions - SOLUTION
INTRO - JAVASCRIPT BASICS - Operators
LECTURE - Operands Unary vs Binary Operators and Notations
PRACTICE - Arithmetic Operators - PART 1
PRACTICE - Arithmetic Operators - PART 2
PRACTICE - Comparison Operators - PART 1
PRACTICE - Comparison Operators - PART 2
PRACTICE - Logical Operators - PART 1
PRACTICE - Logical Operators - PART 2
PRACTICE - Operators Precedence and Associativity
CHALLENGES - Operators - PART 1
CHALLENGES - Operators - PART 2
INTRO - JAVASCRIPT BASICS - Expressions vs Statements
LECTURE - Expressions vs Statements - PART 1
LECTURE - Expressions vs Statements - PART 2
PRACTICE - Expressions vs Statements - PART 1
PRACTICE - Expressions vs Statements - PART 2
CHALLENGES - Expressions vs Statements
INTRO - JAVASCRIPT BASICS - Scopes
LECTURE - Scopes - PART 1
LECTURE - Scopes - PART 2
LECTURE - Undeclared Variables and "use strict"
PRACTICE - Scopes - PART 1
PRACTICE - Scopes - PART 2
LECTURE - Introduction to the Loops
LECTURE - "do while" Loop
LECTURE - "for in" and "for of" Loops
PRACTICE Loops - Looking for loops in a pubic JavaScript library
LECTURE - Conditional Statements - if if else and switch
LECTURE - Ternary Operator
PRACTICE - Conditional statements and ternary operator - PART 1
PRACTICE - Conditional statements and ternary operator - PART 2
CHALLENGES - Loops and Conditions - PART 1
CHALLENGES - Loops and Conditions - PART 2
CHALLENGES - Loops and Conditions - PART 3
CHALLENGES - "for in" and Ternary Operator
PRACTICE - Mutable vs Immutable Values
PRACTICE - "typeof" and "instanceof" Operators
PRACTICE - "new Array" "new String"
PRACTICE - "new Object" "new Function"
PRACTICE - Execution contexts and Execution contexts stack
PRACTICE - "call" "apply" methods of the Function
PRACTICE - "bind" method of the Function
PRACTICE - "pass by value" vs "pass by reference"
PRACTICE - IIFE - Immediately Invoked Function Expression
PRACTICE - Synchronous Code Execution
PRACTICE - Events and Events queue
PRACTICE - Callbacks - PART 1
PRACTICE - Callbacks - PART 2
GIT REPOSITORY FOR THIS SECTION
LECTURE - Recap of the "var"
LECTURE - Scopes - Global Function and Block
LECTURE - Variables Usage Guidelines
LECTURE - Var Let or Const?
CHALLENGE 1-1 - let var and const
✓ CHALLENGE 1-1 - let var and const - SOLUTION
CHALLENGE 1-2 - let var and closures
✓ CHALLENGE 1-2 - let var and closures - SOLUTION
LECTURE - JavaScript Engine Phases
LECTURE - Variable Lifecycle Phases
LECTURE - Undeclared variable lifecycle
LECTURE - Const lifecycle
LECTURE - Function lifecycle - Part 1
LECTURE - Function lifecycle - Part 2
LECTURE - What is finally hoisting?
DEMO - Putting different variables lifecycles together
✓ DEMO - Putting different variables lifecycles together - SOLUTION Part 1
✓ DEMO - Putting different variables lifecycles together - SOLUTION Part 2
CHALLENGE 1-3 - Variable Lifecycles
✓ CHALLENGE 1-3 - Variable Lifecycles - SOLUTION
LECTURE - Variables Phases Section Summary
GIT REPOSITORY FOR THIS SECTION
LECTURE - Introduction to the Arrow Functions Section
LECTURE - Traditional JavaScript Functions Overview.
LECTURE - Introduction to the Arrow Functions
LECTURE - Arrow Functions syntax
PRACTICE - Arrow Functions
LECTURE - Arrow Functions and "this".
LECTURE - Regular functions instead of Arrow Functions
CHALLENGE 2-1 - Regular vs Arrow Functions
✓ CHALLENGE 2-1 - Regular vs Arrow Functions - SOLUTION
LECTURE - Arguments in the Functions
LECTURE - Arrow Functions Summary
GIT REPOSITORY FOR THIS SECTION
LECTURE - forEach() Overview
CHALLENGE 3-1 - forEach() with Index
✓ CHALLENGE 3-1 - forEach() with Index - SOLUTION
CHALLENGE 3-2 - map() JSON to Object
✓ CHALLENGE 3-2 - map() JSON to Object - SOLUTION
LECTURE - filter() Overview
LECTURE - find() Overview
CHALLENGE 3-3 - find() Single Post
✓ CHALLENGE 3-3 - find() Single Post - SOLUTION
LECTURE - every() and some() Overview
PRACTICE - every() and some()
CHALLENGE 3-4 Is Array of Numbers Sorted?
✓ CHALLENGE 3-4 Is Array of Numbers Sorted? - SOLUTION
CHALLENGE 3-5 Are Arrays Equal or not?
✓ CHALLENGE 3-5 Are Arrays Equal or not? - SOLUTION
CHALLENGE 3-6 Check if Element is in Array
✓ CHALLENGE 3-6 Check if Element is in Array - SOLUTION
LECTURE - includes() Overview
CHALLENGE 3-7 Includes() with Array or Object
✓ CHALLENGE 3-7 Includes() with Array or Object - SOLUTION
CHALLENGE 3-8 Push Element to Array if Not Exists
✓ CHALLENGE 3-8 Push Element to Array if Not Exists - SOLUTION
LECTURE - reduce() Overview
CHALLENGE 3-9 Reduce Array of Objects
✓ CHALLENGE 3-9 Reduce Array of Objects - SOLUTION
CHALLENGE 3-10 Reduce Array of Objects to Object
✓ CHALLENGE 3-10 Reduce Array of Objects to Object - SOLUTION
LECTURE - Do you know how sort() works?
LECTURE - Sorting Algorithms Overview
LECTURE - Stable vs Unstable Sort
LECTURE - sort() Overview
LECTURE - sort() without Arguments
LECTURE - sort() Analyze sorting algorithms
LECTURE - sort() Algorithms in different browsers
CHALLENGE 3-11 sort() Array of objects
✓ CHALLENGE 3-11 sort() Array of objects - SOLUTION
CHALLENGE 3-12 sort() Long Array of objects
✓ CHALLENGE 3-12 sort() Long Array of objects - SOLUTION
LECTURE - Array helper methods Summary
GIT REPOSITORY FOR THIS SECTION
LECTURE - Template Literals Overview
LECTURE - Tagged Templates Overview
CHALLENGE 4-1 Template Literals
✓ CHALLENGE 4-1 Template Literals - SOLUTION
CHALLENGE 4-2 Default tagged template
✓ CHALLENGE 4-2 Default tagged template - SOLUTION
GIT REPOSITORY FOR THIS SECTION
LECTURE - Rest Parameters Overview
PRACTICE - Rest Parameters
LECTURE - Spread Operator Overview
PRACTICE - Spread Operator
CHALLENGE 5-1 Rest and Spread Operators
✓ CHALLENGE 5-1 Rest and Spread Operators - SOLUTION
LECTURE - Default Function Parameters Overview
PRACTICE - Default Function Parameters
CHALLENGE 5-2 Default value without default parameters
✓ CHALLENGE 5-2 Default value without default parameters - SOLUTION
CHALLENGE 5-3 Generate Missing Unique IDs
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 1
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 2
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 3
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 4
GIT REPOSITORY FOR THIS SECTION
LECTURE - Enhanced Object Literals Overview
PRACTICE - Enhanced Object Literals
CHALLENGE 6-1 Enhanced Object Literals
✓ CHALLENGE 6-1 Enhanced Object Literals - SOLUTION
GIT REPOSITORY FOR THIS SECTION
LECTURE - Destructuring Overview
PRACTICE - Array Destructuring
CHALLENGE 6-2 Array Destructuring
✓ CHALLENGE 6-2 Array Destructuring - SOLUTION
CHALLENGE 6-3 Destructure Result of the Function
✓ CHALLENGE 6-3 Destructure Result of the Function - SOLUTION
PRACTICE - Object Destructuring - PART 1
LECTURE - New Variable Names and Default Values in Object Destructuring
PRACTICE - Object Destructuring - PART 2
CHALLENGE 6-4 Object Destructuring
✓ CHALLENGE 6-4 Object Destructuring - SOLUTION
CHALLENGE 6-5 Object Destructuring and Array Helper Methods
✓ CHALLENGE 6-5 Object Destructuring and Array Helper Methods - SOLUTION
CHALLENGE 6-6 Delete Object Properties
✓ CHALLENGE 6-6 Delete Object Properties - SOLUTION
GIT REPOSITORY FOR THIS SECTION
LECTURE - Class-based vs Prototype-based
LECTURE - What is inheritance?
LECTURE - Prototype Chain
LECTURE - __proto__ and [[Prototype]]
LECTURE - What is Prototype?
LECTURE - Don't reassign __proto__
LECTURE - Native Prototypes - PART 1
LECTURE - Native Prototypes - PART 2
LECTURE - Prototypal Inheritance in JavaScript
PRACTICE - Function Constructors - PART 1
LECTURE - Function Constructors Overview
PRACTICE - Function Constructors - PART 2
PRACTICE - Function Constructors - PART 3
LECTURE - Object.create() Overview
PRACTICE - Object.create()
PRACTICE - Function Constructors - PART 4
LECTURE - Function Constructors - New Prototype in the Chain
CHALLENGE 7-1 Insert Prototype Into the Existing Prototype Chain
✓ CHALLENGE 7-1 Insert Prototype Into the Existing Prototype Chain - SOLUTION
LECTURE - "instanceof" and "typeof" in the Prototype Chain
CHALLENGE 7-2 Fix Mistakes in the Function Constructors
✓ CHALLENGE 7-2 Fix Mistakes in the Function Constructors - SOLUTION
LECTURE - Classes - Overview
LECTURE - Classes vs Function Constructors
PRACTICE - Classes - PART 1
PRACTICE - Classes - PART 2
PRACTICE - Classes - PART 3
CHALLENGE 7-3 Convert Function Constructors to Classes
✓ CHALLENGE 7-3 Convert Function Constructors to Classes - SOLUTION
CHALLENGE 7-4 Extend Array
✓ CHALLENGE 7-4 Extend Array - SOLUTION
CHALLENGE 7-5 Custom Push Method for Arrays
✓ CHALLENGE 7-5 Custom Push Method for Arrays - SOLUTION
LECTURE - React and ES6 Classes
CHALLENGE 7-6 Classes in React - Additional Button
✓ CHALLENGE 7-6 Classes in React - Additional Button - SOLUTION
Babel Module Introduction
LECTURE - What is Compiler?
LECTURE - Compiled vs Interpreted languages
LECTURE - Transpling vs Compiling
LECTURE - ES5 ES6 and JavaScript
LECTURE - What Babel does?
LECTURE - Why do we need Babel?
LECTURE - ES6 support by Browsers
LECTURE - How many browsers need compiled ES5 code?
PRACTICE - Babel in action - ES6 Rest operator
PRACTICE - Compare performance - ES6 Rest Operator(Node.js)
PRACTICE - Compare Performance - ES6 Rest Operator (Google Chrome)
CHALLENGE - Compare Performance - ES6 Destructuring
✓ CHALLENGE - Compare Performance - ES6 Destructurng - SOLUTION
LECTURE - What is User Agent?
LECTURE - Serve different JS files to different browers
LECTURE - Different JS files on the server
PRACTICE - Browser detection on the client
CHALLENGE - Detect feature support in the Browser
✓ CHALLENGE - Detect feature support in the Browser - SOLUTION
CHALLENGE - Insert different script tags into the DOM
✓ CHALLENGE - Insert different script tags into the DOM - SOLUTION
LECTURE - How Babel Works?
PRACTICE - Online Babel Compiler
LECTURE - Install Babel Globally
PRACTICE - Compile JS file using Babel
LECTURE - Plugins and Presets
LECTURE - Introduction to the NPM
PRACTICE - Exploring NPM packages
LECTURE - Package.json and init
LECTURE - Semantic Versioning
LECTURE - Packages Installation
PRACTICE - Install package in the project
CHALLENGE - Install Semver package
✓ CHALLENGE - Install Semver Package - SOLUTION
PRACTICE - Install Browserslist - package with own dependencies
LECTURE - Dependencies and Development Dependencies
PRACTICE - Examine Development Dependencies
PRACTICE - Browser App vs Server Package
CHALLENGE - Clock Browser Application
✓ CHALLENGE - Clock Browser Application - SOLUTION
LECTURE - Clock Challenge Summary
LECTURE - Browser App vs Public Package
PRACTICE - Exploring Package Information and Versions
PRACTICE - Installing Specific Package Version
LECTURE - Why package-lock.json file is needed?
CHALLENGE - Reinstall old package version without lock file
✓ CHALLENGE - Reinstall old package version without lock file - SOLUTION
LECTURE - How lock file is handled
LECTURE - Lock file summary
LECTURE - Update NPM packages overview
CHALLENGE - Update project dependencies
✓ CHALLENGE - Update project dependencies - SOLUTION
LECTURE - Introduction to the NPM scripts
PRACTICE - Start npm script
CHALLENGE - Create prestart script
✓ CHALLENGE - Create prestart script - SOLUTION
PRACTICE - Custom NPM scripts
CHALLENGE - Run NPM scripts simultaneously
✓ CHALLENGE - Run NPM scripts simultaneously - SOLUTION
LECTURE - NPM .bin Folder with Executable Scripts
PRACTICE - Explore .bin Folder on the Mac
PRACTICE - Explore .bin Folder on Windows
LECTURE - NPM Scripts Wrap-Up
LECTURE - Where MongoDB is used?
LECTURE - Relational vs Document Databases
LECTURE - MongoDB Structure
LECTURE - MongoDB Shell and MongoDB Server
PRACTICE - Installation of the MongoDB on the local computer
PRACTICE - Launch MongoDB Server and connect to it from the MongoDB Shell
PRACTICE - MongoDB database in the Cloud
PRACTICE - Exploring MongoDB Shell
PRACTICE - Installing and Exploring Robo 3T (previously Robomongo)
LECTURE - Difference between JSON and JavaScript Object
LECTURE - How Documents are stored in the Database? - BSON Format
LECTURE - What is Extended JSON?
LECTURE - Data Types representation in Extended JSON
LECTURE - How types are stored in BSON?
PRACTICE - Creation of the new Collection
LECTURE - Insert Methods insertOne() and insertMany()
LECTURE - Sample Data Overview
PRACTICE - Insert Sample Documents into the Collection
LECTURE - Find Methods find() and findOne()
PRACTICE - Finding Documents
LECTURE - Query Operators Overview
PRACTICE - Finding Documents with Query Operators
LECTURE - Sort Limit and Skip helper methods
PRACTICE - Sort Limit and Skip
LECTURE - Update Methods updateOne() and updateMany()
LECTURE - Update Operators
PRACTICE - Updating Documents using Update Operators
LECTURE - Delete Methods deleteOne() and deleteMany()
PRACTICE - Deleting Documents
LECTURE - MongoDB Aggregation Framework
PRACTICE - Aggregating Documents
LECTURE - MongoDB Indexes
LECTURE - MongoDB Utilities
LECTURE - What is MongoDB Replica Set?
LECTURE - MongoDB Drivers
Intro to Additional JavaScript Challenges
CHALLENGE 1 - Sum numbers
✓ CHALLENGE 1 - Sum numbers - SOLUTION
✓ CHALLENGE 2 - Const - SOLUTION
✓ CHALLENGE 3 - Let - SOLUTION
✓ CHALLENGE 4 - Hoisting - SOLUTION
CHALLENGE 5 - Ternary Operator
✓ CHALLENGE 5 - Ternary Operator - SOLUTION
CHALLENGE 6 - Arrow Functions
✓ CHALLENGE 6 - Arrow Functions - SOLUTION
CHALLENGE 7 - Default parameters
✓ CHALLENGE 7 - Default parameters - SOLUTION
CHALLENGE 8 - Check presence of the function parameters
✓ CHALLENGE 8 - Check presence of the function parameters - SOLUTION
CHALLENGE 9 - Object Destructuring
✓ CHALLENGE 9 - Object Destructuring - SOLUTION
CHALLENGE 10 - Destructuring and Rest Operator
✓ CHALLENGE 10 - Destructuring and Rest Operator - SOLUTION
CHALLENGE 11 - Spread Operator
✓ CHALLENGE 11 - Spread Operator - SOLUTION
CHALLENGE 12 - Copy Array
✓ CHALLENGE 12 - Copy Array - SOLUTION
CHALLENGE 13 - Template Literals
✓ CHALLENGE 13 - Template Literals - SOLUTION
CHALLENGE 14 - Object Destructuring
✓ CHALLENGE 14 - Object Destructuring - SOLUTION
CHALLENGE 15 - Iterate over String
✓ CHALLENGE 15 - Iterate over String - SOLUTION
CHALLENGE 16 - Swap values of the two variables
✓ CHALLENGE 16 - Swap values of the two variables - SOLUTION
CHALLENGE 17 - IIFE (Immediately Invoked Function Expression)
✓ CHALLENGE 17 - IIFE (Immediately Invoked Function Expression) - SOLUTION
✓ CHALLENGE 18 - Classes - SOLUTION
CHALLENGE 19 - Iterate over Object
✓ CHALLENGE 19 - Iterate over Object - SOLUTION
CHALLENGE 20 - Sum positive and negative numbers
✓ CHALLENGE 20 - Sum positive and negative numbers - SOLUTION