Урок 1.00:01:51
Introduction
Урок 2.00:03:47
What is JavaScript?
Урок 3.00:09:09
JavaScript in Action!
Урок 4.00:03:15
How JavaScript Is Executed
Урок 5.00:03:29
Dynamic vs Weakly Typed Languages
Урок 6.00:04:41
JavaScript Executes In A Hosted Environment
Урок 7.00:06:01
Course Outline - What's In This Course?
Урок 8.00:02:37
How To Get The Most Out Of This Course
Урок 9.00:04:03
JavaScript vs Java
Урок 10.00:06:04
A Brief History Of JavaScript
Урок 11.00:11:13
Setting Up a Development Environment
Урок 12.00:01:18
Module Introduction
Урок 13.00:04:26
Setting Up the Project
Урок 14.00:06:43
Adding JavaScript to the Website
Урок 15.00:05:18
Introducing Variables & Constants
Урок 16.00:07:11
Declaring & Defining Variables
Урок 17.00:06:18
Working with Variables & Operators
Урок 18.00:01:22
Understanding the Starting Code
Урок 19.00:06:02
Data Types: Numbers & Strings (Text)
Урок 20.00:05:12
Using Constants
Урок 21.00:15:52
More on Strings
Урок 22.00:05:51
Introducing Functions
Урок 23.00:11:23
Adding A Custom Function
Урок 24.00:04:32
Returning Values
Урок 25.00:04:35
The (Un)Importance of Code Order
Урок 26.00:05:32
An Introduction to Global & Local Scope
Урок 27.00:02:25
More about the "return" Statement
Урок 28.00:11:11
Executing Functions "Indirectly"
Урок 29.00:06:15
Converting Data Types
Урок 30.00:05:50
Splitting Code into Functions
Урок 31.00:07:44
Connecting all Buttons to Functions
Урок 32.00:04:10
Working with Code Comments
Урок 33.00:06:40
More Operators!
Урок 34.00:04:32
More Core Data Types!
Урок 35.00:08:54
Using Arrays
Урок 36.00:06:03
Creating Objects
Урок 37.00:02:52
Accessing Object Data
Урок 38.00:05:25
Adding a Re-Usable Function That Uses Objects
Урок 39.00:06:21
undefined, null & NaN
Урок 40.00:03:13
The "typeof" Operator
Урок 41.00:14:38
Importing Scripts Correctly with "defer" & "async"
Урок 42.00:02:14
Wrap Up
Урок 43.00:01:29
Module Introduction
Урок 44.00:03:19
Efficient Development & Debugging - An Overview
Урок 45.00:02:26
Configuring the IDE Look & Feel
Урок 46.00:04:13
Using Shortcuts
Урок 47.00:04:35
Working with Auto-Completion & IDE Hints
Урок 48.00:02:05
Installing IDE Extensions
Урок 49.00:02:16
Tweaking Editor Settings
Урок 50.00:01:43
Utilizing Different IDE Views
Урок 51.00:05:54
Finding Help & Working with MDN
Урок 52.00:01:46
How to "google" Correctly
Урок 53.00:03:18
Debugging JavaScript - An Overview
Урок 54.00:04:47
An Error Message! No Reason To Panic!
Урок 55.00:03:50
Using console.log() to look "into the Code"
Урок 56.00:08:21
Next-Level Debugging with the Chrome Devtools & Breakpoints
Урок 57.00:02:06
Testing Code Changes Directly in the Devtools
Урок 58.00:04:56
Debugging Code directly Inside VS Code
Урок 59.00:01:23
Wrap Up
Урок 60.00:09:18
Module Introduction
Урок 61.00:09:27
Introducing "if" Statements & Boolean (Comparison) Operators
Урок 62.00:07:24
Using "if" Statements
Урок 63.00:05:11
Working with "if", "else" and "else-if"
Урок 64.00:04:07
Beware When Comparing Objects & Arrays for Equality!
Урок 65.00:09:11
The Logical AND and OR Operators
Урок 66.00:07:21
Understanding Operator Precedence
Урок 67.00:07:31
Beyond true/ false: "Truthy" and "Falsy" Values
Урок 68.00:03:00
Setting Up a Bigger Example Project (The "Monster Killer")
Урок 69.00:07:58
Adding an "Attack" Function
Урок 70.00:09:18
Using "if" Statements for Checking the Win-Condition
Урок 71.00:07:42
Adding More "if" Statements & A "Strong Attack" Functionality
Урок 72.00:10:16
Time for a "Heal Player" Functionality!
Урок 73.00:06:01
Controlling the Conditional Bonus Life (Without Boolean Operators!)
Урок 74.00:06:01
Adding a "Reset Game" Functionality
Урок 75.00:06:18
Validating User Input
Урок 76.00:03:21
Utilizing Global Constants as Identifiers in Conditional Code
Урок 77.00:16:38
Adding a Conditional Battle Log
Урок 78.00:07:32
Introducing the Ternary Operator
Урок 79.00:01:41
A Bit of Theory: Statements vs Expressions
Урок 80.00:12:59
Logical Operator "Tricks" & Shorthands
Урок 81.00:07:11
Working with the "switch-case" Statement
Урок 82.00:06:41
Introducing Loops
Урок 83.00:07:39
The "for" Loop
Урок 84.00:05:18
The "for-of" Loop
Урок 85.00:06:50
The "for-in" Loop
Урок 86.00:08:01
The "while" & "do-while" Loops
Урок 87.00:08:12
Controlling Loops with "break"
Урок 88.00:02:22
Controlling Iterations with "continue"
Урок 89.00:06:27
More Control with Labeled Statements
Урок 90.00:02:26
Error Handling with "try-catch" - An Introduction
Урок 91.00:05:18
Throwing Custom Errors
Урок 92.00:08:15
Working with "try-catch" to Catch & Handle Errors
Урок 93.00:03:22
Wrap Up
Урок 94.00:01:44
Module Introduction
Урок 95.00:08:15
ES5 vs ES6+ ("Next Gen JS") - Evolution of JavaScript
Урок 96.00:14:33
var vs let & const - Introducing "Block Scope"
Урок 97.00:04:08
Understanding "Hoisting"
Урок 98.00:05:47
Strict Mode & Writing Good Code
Урок 99.00:08:17
How Code is Parsed & Compiled
Урок 100.00:16:00
Inside the JavaScript Engine - How the Code Executes
Урок 101.00:19:25
Primitive vs Reference Values
Урок 102.00:12:01
Garbage Collection & Memory Management
Урок 103.00:01:56
Wrap Up
Урок 104.00:01:32
Module Introduction
Урок 105.00:01:53
Recapping Functions Knowledge - What We Know Thus Far
Урок 106.00:05:47
Functions vs Methods
Урок 107.00:02:48
Functions are Objects!
Урок 108.00:05:13
Function Expressions: Storing Functions in Variables
Урок 109.00:02:48
Function Expressions vs Function Declarations
Урок 110.00:05:55
Anonymous Functions
Урок 111.00:07:45
Working on the Project: Adding User Choices to the Game
Урок 112.00:07:21
Implementing the Core Game Logic
Урок 113.00:08:42
Introducing Arrow Functions
Урок 114.00:03:55
Outputting Messages to the User
Урок 115.00:10:46
Default Arguments in Functions
Урок 116.00:08:58
Introducing Rest Parameters ("Rest Operator")
Урок 117.00:03:05
Creating Functions Inside of Functions
Урок 118.00:06:10
Understanding Callback Functions
Урок 119.00:08:40
Working with "bind()"
Урок 120.00:03:48
Adding bind() to the Calculator Project
Урок 121.00:01:19
call() and apply()
Урок 122.00:02:11
Wrap Up
Урок 123.00:01:49
Module Introduction
Урок 124.00:06:01
What's the "DOM"?
Урок 125.00:06:21
Document and Window Object
Урок 126.00:07:08
Understanding the DOM and how it's created
Урок 127.00:05:56
Nodes & Elements - Querying the DOM Overview
Урок 128.00:09:55
Selecting Elements in the DOM
Урок 129.00:07:39
Exploring and Changing DOM Properties
Урок 130.00:08:59
Attributes vs Properties
Урок 131.00:05:14
Selecting Multiple Elements & Summary
Урок 132.00:06:23
Traversing the DOM - Overview
Урок 133.00:09:16
Traversing Child Nodes
Урок 134.00:05:02
Using parentNode & parentElement
Урок 135.00:04:07
Selecting Sibling Elements
Урок 136.00:04:36
DOM Traversal vs Query Methods
Урок 137.00:12:19
Styling DOM Elements
Урок 138.00:02:43
Creating Elements with JS - Overview
Урок 139.00:07:43
Adding Elements via HTML in Code
Урок 140.00:05:43
Adding Elements via createElement()
Урок 141.00:08:16
Inserting DOM Elements
Урок 142.00:01:46
Cloning DOM Nodes
Урок 143.00:04:56
Live Node Lists vs Static Node Lists
Урок 144.00:01:57
Removing Elements
Урок 145.00:02:39
Insertion & Removal Method Summary
Урок 146.00:02:17
Setting Up the Practice Project
Урок 147.00:08:59
Selecting the Modal and "Add" Button
Урок 148.00:05:02
Opening a Modal by Changing CSS Classes
Урок 149.00:08:05
Controlling the Backdrop
Урок 150.00:08:07
Fetching and Validating User Input
Урок 151.00:04:02
Creating a Movie in JavaScript & Clearing the Input
Урок 152.00:08:25
Rendering Movie Items on the Screen
Урок 153.00:09:13
Deleting Movie Elements
Урок 154.00:07:09
Showing & Hiding the "Are you sure?" Dialog
Урок 155.00:04:30
Starting with the Confirmation Logic
Урок 156.00:11:46
Finishing the App
Урок 157.00:01:56
Wrap Up
Урок 158.00:01:09
Module Introduction
Урок 159.00:02:12
What are "Iterables" and "Array-like Objects"?
Урок 160.00:08:57
Creating Arrays
Урок 161.00:03:48
Which Data Can You Store In Arrays?
Урок 162.00:07:00
push(), pop(), unshift(), shift() - Adding & Removing Elements
Урок 163.00:05:39
The splice() Method
Урок 164.00:06:07
Selecting Ranges & Creating Copies with slice()
Урок 165.00:02:24
Adding Arrays to Arrays with concat()
Урок 166.00:03:48
Retrieving Indexes with indexOf() /& lastIndexOf()
Урок 167.00:05:21
Finding Stuff: find() and findIndex()
Урок 168.00:01:21
Is it Included?
Урок 169.00:04:26
Alternative to for Loops: The forEach() Method
Урок 170.00:02:39
Transforming Data with map()
Урок 171.00:04:17
sort()ing and reverse()ing
Урок 172.00:02:36
Filtering Arrays with filter()
Урок 173.00:01:32
Where Arrow Functions Shine!
Урок 174.00:07:34
The Important reduce() Method
Урок 175.00:04:22
Arrays & Strings - split() and join()
Урок 176.00:10:32
The Spread Operator (...)
Урок 177.00:04:26
Understanding Array Destructuring
Урок 178.00:04:17
Maps & Sets - Overview
Урок 179.00:07:22
Working with Sets
Урок 180.00:09:31
Working with Maps
Урок 181.00:03:42
Maps vs Objects
Урок 182.00:04:51
Understanding WeakSet
Урок 183.00:02:52
Understanding WeakMap
Урок 184.00:01:26
Wrap Up
Урок 185.00:01:39
Module Introduction
Урок 186.00:05:55
What's an Object?
Урок 187.00:02:43
Objects - Recap
Урок 188.00:06:47
Adding, Modifying & Deleting Properties
Урок 189.00:08:37
Special Key Names & Square Bracket Property Access
Урок 190.00:03:56
Property Types & Property Order
Урок 191.00:04:12
Dynamic Property Access & Setting Properties Dynamically
Урок 192.00:09:23
Demo App & Shorthand Property Syntax
Урок 193.00:05:37
Rendering Elements based on Objects
Урок 194.00:05:25
for-in Loops & Outputting Dynamic Properties
Урок 195.00:05:39
Adding the Filter Functionality
Урок 196.00:01:52
Understanding "Chaining" (Property & Method Chaining)
Урок 197.00:05:55
The Object Spread Operator (...)
Урок 198.00:02:09
Understanding Object.assign()
Урок 199.00:06:14
Object Destructuring
Урок 200.00:02:43
Checking for Property Existance
Урок 201.00:05:53
Introducing "this"
Урок 202.00:01:08
The Method Shorthand Syntax
Урок 203.00:05:42
The "this" Keyword And Its Strange Behavior
Урок 204.00:03:23
call() and apply()
Урок 205.00:02:34
What the Browser (Sometimes) Does to "this"
Урок 206.00:10:37
"this" and Arrow Functions
Урок 207.00:07:06
Getters & Setters
Урок 208.00:01:35
Wrap Up
Урок 209.00:01:56
Module Introduction
Урок 210.00:03:18
What is "Object-oriented Programming" (OOP)?
Урок 211.00:12:11
Getting Started with OOP Code
Урок 212.00:07:18
Defining & Using a First Class
Урок 213.00:04:52
Working with Constructor Methods
Урок 214.00:02:20
Fields vs Properties
Урок 215.00:09:07
Using & "Connecting" Multiple Classes
Урок 216.00:04:58
Binding Class Methods & Working with "this"
Урок 217.00:04:38
Adding a Cart and Shop Class
Урок 218.00:03:55
Communicating Can Be Challenging!
Урок 219.00:07:52
Static Methods & Properties
Урок 220.00:04:07
First Summary & Classes vs Object Literals
Урок 221.00:05:44
Getters & Setters
Урок 222.00:02:35
Introducing Inheritance
Урок 223.00:11:51
Implementing Inheritance
Урок 224.00:06:52
Using Inheritance Everywhere
Урок 225.00:06:01
Overriding Methods and the super() Constructor
Урок 226.00:06:47
super() Constructor Execution, Order & "this"
Урок 227.00:05:52
Different Ways of Adding Methods
Урок 228.00:07:25
Private Properties
Урок 229.00:04:31
The "instanceof" Operator
Урок 230.00:01:10
Built-in Classes
Урок 231.00:07:36
Understanding Object Descriptors
Урок 232.00:01:52
Wrap Up
Урок 233.00:01:35
Module Introduction
Урок 234.00:04:03
Introducing Constructor Functions
Урок 235.00:04:18
Constructor Functions vs Classes & Understanding "new"
Урок 236.00:16:48
Introducing Prototypes
Урок 237.00:05:20
Working with Prototypes
Урок 238.00:08:27
The Prototype Chain and the Global "Object"
Урок 239.00:05:25
Classes & Prototypes
Урок 240.00:10:17
Methods in Classes & In Constructors
Урок 241.00:02:13
Built-in Prototypes in JavaScript
Урок 242.00:10:59
Setting & Getting Prototypes
Урок 243.00:02:50
Wrap Up
Урок 244.00:01:39
Module Introduction
Урок 245.00:04:47
First Project Steps & Planning
Урок 246.00:04:09
Creating Project Lists & Parsing Element Data
Урок 247.00:10:00
Starting with the "Switch Project" Logic
Урок 248.00:07:03
Passing Method References Around
Урок 249.00:11:50
Moving DOM Elements
Урок 250.00:08:59
Adding a Tooltip
Урок 251.00:06:14
Adding Inheritance
Урок 252.00:00:58
Wrap Up
Урок 253.00:02:32
Module Introduction
Урок 254.00:06:52
Using "dataset" (data-* Attributes)
Урок 255.00:05:55
Getting Element Box Dimensions
Урок 256.00:04:57
Working with Element Sizes & Positions
Урок 257.00:02:22
The DOM & Prototypes
Урок 258.00:10:58
Positioning the Tooltip
Урок 259.00:05:38
Handling Scrolling
Урок 260.00:05:15
Working with <template> Tags
Урок 261.00:07:36
Loading Scripts Dynamically
Урок 262.00:07:38
Setting Timers & Intervals
Урок 263.00:04:21
The "location" and "history" Objects
Урок 264.00:04:51
The "navigator" Object
Урок 265.00:03:18
Working with Dates
Урок 266.00:03:22
The "Error" Object & Constructor Function
Урок 267.00:00:44
Wrap Up
Урок 268.00:01:32
Module Introduction
Урок 269.00:06:19
Introduction to Events in JavaScript
Урок 270.00:07:00
Different Ways of Listening to Events
Урок 271.00:05:15
Removing Event Listeners
Урок 272.00:05:44
The "event" Object
Урок 273.00:08:02
Supported Event Types
Урок 274.00:05:16
Working with "preventDefault()"
Урок 275.00:02:04
Understanding "Capturing" & "Bubbling" Phases
Урок 276.00:07:40
Event Propagation & "stopPropagation()"
Урок 277.00:08:34
Using Event Delegation
Урок 278.00:03:41
Triggering DOM Elements Programmatically
Урок 279.00:02:29
Event Handler Functions & "this"
Урок 280.00:05:00
Drag & Drop - Theory
Урок 281.00:06:24
Configuring Draggable Elements
Урок 282.00:08:53
Marking the "Drop Area"
Урок 283.00:06:59
Dropping & Moving Data + Elements
Урок 284.00:01:16
Wrap Up
Урок 285.00:00:58
Module Introduction
Урок 286.00:06:14
Pure Functions & Side-Effects
Урок 287.00:02:01
Impure vs Pure Functions
Урок 288.00:05:42
Factory Functions
Урок 289.00:07:46
Closures
Урок 290.00:07:02
Closures in Practice
Урок 291.00:01:25
Closures & Memory Management
Урок 292.00:07:33
Introducing "Recursion"
Урок 293.00:09:02
Advanced Recursion
Урок 294.00:01:15
Wrap Up
Урок 295.00:00:54
Module Introduction
Урок 296.00:07:47
How Numbers Work & Behave in JavaScript
Урок 297.00:11:05
Floating Point (Im)Precision
Урок 298.00:03:37
The BigInt Type
Урок 299.00:02:48
The Global "Number" and "Math" Objects
Урок 300.00:05:34
Example: Generate Random Number Between Min/ Max
Урок 301.00:01:44
Exploring String Methods
Урок 302.00:10:30
Tagged Templates
Урок 303.00:04:32
Introducing Regular Expressions ("RegEx")
Урок 304.00:07:26
More on Regular Expressions
Урок 305.00:01:21
Wrap Up
Урок 306.00:01:13
Module Introduction
Урок 307.00:02:52
Understanding Synchronous Code Execution ("Sync Code")
Урок 308.00:05:45
Understanding Asynchronous Code Execution ("Async Code")
Урок 309.00:10:31
Blocking Code & The "Event Loop"
Урок 310.00:04:04
Sync + Async Code - The Execution Order
Урок 311.00:03:21
Multiple Callbacks & setTimeout(0)
Урок 312.00:08:26
Getting Started with Promises
Урок 313.00:05:54
Chaining Multiple Promises
Урок 314.00:07:47
Promise Error Handling
Урок 315.00:09:12
Async/ await
Урок 316.00:03:08
Async/ await & Error Handling
Урок 317.00:04:57
Async/ await vs "Raw Promises"
Урок 318.00:08:00
Promise.all(), Promise.race() etc.
Урок 319.00:01:28
Wrap Up
Урок 320.00:01:08
Module Introduction
Урок 321.00:05:04
What & Why
Урок 322.00:05:25
More Background about Http
Урок 323.00:03:36
Getting Started with Http
Урок 324.00:03:47
Sending a GET Request
Урок 325.00:09:15
JSON Data & Parsing Data
Урок 326.00:03:50
Promisifying Http Requests (with XMLHttpRequest)
Урок 327.00:04:56
Sending Data with a POST Request
Урок 328.00:03:14
Triggering Requests via the UI
Урок 329.00:04:57
Sending a DELETE Request
Урок 330.00:05:04
Handling Errors
Урок 331.00:07:12
Using the fetch() API
Урок 332.00:02:39
POSTing Data with the fetch() API
Урок 333.00:03:02
Adding Request Headers
Урок 334.00:07:13
fetch() & Error Handling
Урок 335.00:01:43
XMLHttpRequest vs fetch()
Урок 336.00:06:59
Working with FormData
Урок 337.00:01:18
Wrap Up
Урок 338.00:01:00
Module Introduction
Урок 339.00:02:56
What & Why
Урок 340.00:09:11
Adding Libraries (Example: lodash)
Урок 341.00:02:31
Example: jQuery
Урок 342.00:03:26
Discovering Libraries
Урок 343.00:10:47
Axios Library & Http Requests
Урок 344.00:04:55
Third-Party Library Considerations
Урок 345.00:01:00
Wrap Up
Урок 346.00:00:57
Module Introduction
Урок 347.00:07:13
Splitting Code in a Sub-optimal Way
Урок 348.00:03:26
A First Step Towards JavaScript Modules
Урок 349.00:05:59
We Need a Development Server!
Урок 350.00:03:42
First import / export Work
Урок 351.00:04:27
Switching All Files To Use Modules
Урок 352.00:06:13
More Named Export Syntax Variations
Урок 353.00:03:36
Working With Default Exports
Урок 354.00:05:25
Dynamic Imports & Code Splitting
Урок 355.00:02:07
When Does Module Code Execute?
Урок 356.00:06:19
Module Scope & globalThis
Урок 357.00:01:38
Wrap Up
Урок 358.00:03:24
Module Introduction
Урок 359.00:08:12
Project Limitations & Why We Need Tools
Урок 360.00:02:43
Workflow Overview
Урок 361.00:03:47
Setting Up a npm Project
Урок 362.00:03:40
Working with npm Packages
Урок 363.00:08:39
Linting with ESLint
Урок 364.00:15:14
Bundling with Webpack
Урок 365.00:04:01
Development Mode & Fixing "Lazy Loading"
Урок 366.00:03:15
Using webpack-dev-server
Урок 367.00:03:06
Generating Sourcemaps
Урок 368.00:03:46
Building For Production
Урок 369.00:06:36
Final Optimizations
Урок 370.00:04:07
Using Third Party Packages with npm & Webpack
Урок 371.00:01:40
Wrap Up
Урок 372.00:01:07
Module Introduction
Урок 373.00:07:22
Browser Storage Options
Урок 374.00:10:44
localStorage & sessionStorage
Урок 375.00:06:07
Getting Started with Cookies
Урок 376.00:08:11
Working with Cookies
Урок 377.00:08:56
Getting Started with IndexedDB
Урок 378.00:04:07
Working with IndexedDB
Урок 379.00:00:49
Wrap Up
Урок 380.00:01:30
Module Introduction
Урок 381.00:07:37
What Is "Browser Support" About?
Урок 382.00:08:21
Determining Browser Support For A JavaScript Feature
Урок 383.00:03:30
Determining Required Support
Урок 384.00:09:56
Solution: Feature Detection + Fallback Code
Урок 385.00:03:19
Solution: Using Polyfills
Урок 386.00:12:03
Solution: Transpiling Code
Урок 387.00:11:03
Improvement: Automatically Detect + Add Polyfills
Урок 388.00:00:59
What about Support Outside of Browsers?
Урок 389.00:02:37
Browser Support Outside of JavaScript Files
Урок 390.00:01:19
Wrap Up
Урок 391.00:00:54
Module Introduction
Урок 392.00:03:06
Setting Up the Project
Урок 393.00:04:34
Getting DOM Access
Урок 394.00:06:28
Getting the User Location
Урок 395.00:11:17
Adding Feedback (Showing a Modal)
Урок 396.00:02:39
Hiding the Modal
Урок 397.00:14:17
Rendering a Map with Google Maps
Урок 398.00:08:23
Finding an Address & Getting the Coordinates
Урок 399.00:03:36
Converting User Input to Coordinates
Урок 400.00:08:32
Creating a "Share Place" Link
Урок 401.00:03:37
Copying the Link to the Clipboard
Урок 402.00:06:23
Rendering the "Shared Place" Screen
Урок 403.00:01:07
Module Introduction
Урок 404.00:07:36
What and Why?
Урок 405.00:02:47
The Idea Behind React.js
Урок 406.00:17:39
Analysing a React Project
Урок 407.00:01:36
Wrap Up
Урок 408.00:01:52
Module Introduction
Урок 409.00:08:28
Understanding Symbols
Урок 410.00:05:16
Well-known Symbols
Урок 411.00:05:33
Understanding Iterators
Урок 412.00:11:03
Generators & Iterable Objects
Урок 413.00:03:23
Generators Summary & Built-in Iterables Examples
Урок 414.00:07:11
The Reflect API
Урок 415.00:09:05
The Proxy API and a First "Trap"
Урок 416.00:02:58
Working with Proxy Traps
Урок 417.00:01:38
Wrap Up
Урок 418.00:01:43
Module Introduction
Урок 419.00:02:22
JavaScript is a Hosted Language
Урок 420.00:06:18
Installation & Basics
Урок 421.00:04:40
Understanding Modules & File Access
Урок 422.00:05:47
Working with Incoming Http Requests
Урок 423.00:04:02
Sending Responses (HTML Data)
Урок 424.00:10:54
Parsing Incoming Data
Урок 425.00:02:49
Introducing & Installing Express.js
Урок 426.00:06:35
Express.js: The Basics
Урок 427.00:04:24
Extracting Data
Урок 428.00:06:53
Rendering Server-side HTML with Templates & EJS
Урок 429.00:03:45
Enhancing Our Project
Урок 430.00:12:10
Adding Basic REST Routes
Урок 431.00:05:14
Understanding CORS (Cross Origin Resource Sharing)
Урок 432.00:02:17
Sending the Location ID to the Frontend
Урок 433.00:07:17
Adding the GET Location Route
Урок 434.00:14:45
Introducing MongoDB (Database)
Урок 435.00:01:51
Wrap Up
Урок 436.00:01:36
Module Introduction
Урок 437.00:06:46
Security Hole Overview & Exposing Data in your Code
Урок 438.00:14:40
Cross-Site Scripting Attacks (XSS)
Урок 439.00:05:18
Third-Party Libraries & XSS
Урок 440.00:04:17
CSRF Attacks (Cross Site Request Forgery)
Урок 441.00:02:54
CORS (Cross Origin Resource Sharing)
Урок 442.00:01:32
Wrap Up
Урок 443.00:01:12
Module Introduction
Урок 444.00:07:30
Deployment Steps
Урок 445.00:09:44
Example: Static Host Deployment (no Server-side Code)
Урок 446.00:12:46
Example: Dynamic Page Deployment (with Server-side Code)
Урок 447.00:01:50
Module Introduction
Урок 448.00:06:17
What is "Performance Optimization" About?
Урок 449.00:06:49
Optimization Potentials
Урок 450.00:03:43
Measuring Performance
Урок 451.00:15:31
Diving Into The Browser Devtools (for Performance Measuring)
Урок 452.00:02:14
Further Resources
Урок 453.00:04:04
Preparing The Testing Setup
Урок 454.00:11:52
Optimizing Startup Time & Code Usage / Coverage
Урок 455.00:09:54
Updating The DOM Correctly
Урок 456.00:08:12
Updating Lists Correctly
Урок 457.00:03:59
Optimizing The Small Things
Урок 458.00:08:50
Micro-Optimizations (Think Twice!)
Урок 459.00:09:44
Finding & Fixing Memory Leaks
Урок 460.00:03:27
Wrap Up
Урок 461.00:00:50
Module Introduction
Урок 462.00:07:10
What Is Testing? Why Does It Matter?
Урок 463.00:04:11
Testing Setup
Урок 464.00:11:16
Writing & Running Unit Tests
Урок 465.00:06:04
Writing & Running Integration Tests
Урок 466.00:10:17
Writing & Running e2e Tests
Урок 467.00:10:21
Dealing with Async Code
Урок 468.00:07:52
Working with Mocks
Урок 469.00:00:49
Module Introduction
Урок 470.00:03:02
What are Programming Paradigms?
Урок 471.00:08:54
Procedural Programming in Practice
Урок 472.00:13:21
Object Oriented Programming in Practice
Урок 473.00:13:53
Functional Programming in Practice
Урок 474.00:03:27
Wrap Up
Урок 475.00:02:03
Module Introduction
Урок 476.00:04:23
What are "Data Structures" & "Algorithms"?
Урок 477.00:10:23
A First Example
Урок 478.00:07:27
Solving the Same Problem Differently
Урок 479.00:11:45
Performance & The "Big O" Notation
Урок 480.00:03:37
More Time Complexities & Comparing Algorithms
Урок 481.00:05:24
More on Big O
Урок 482.00:10:16
More Examples
Урок 483.00:12:08
Diving into Data Structures & Time Complexities
Урок 484.00:03:24
Where to Learn More & Wrap Up
Урок 485.00:01:12
Module Introduction
Урок 486.00:04:59
What is TypeScript and Why would you use it?
Урок 487.00:10:06
Working with Types
Урок 488.00:17:27
Core Types & Diving Deeper
Урок 489.00:09:23
Object Types, Array Types & Function Types
Урок 490.00:09:21
Advanced Types (Literal Types, Union Types, Enums)
Урок 491.00:12:03
Classes & Interfaces
Урок 492.00:05:03
Generic Types
Урок 493.00:05:12
Configuring the TypeScript Compiler
Урок 494.00:02:02
Module Introduction
Урок 495.00:06:31
Web Components in Action
Урок 496.00:03:23
What are Web Components?
Урок 497.00:02:45
Why Web Components?
Урок 498.00:04:57
Getting Started!
Урок 499.00:02:45
Web Component Browser Support
Урок 500.00:03:54
Our Development Setup
Урок 501.00:08:19
A First Custom Element
Урок 502.00:05:05
Interacting with the Surrounding DOM
Урок 503.00:02:52
Understanding the Custom Element Lifecycle
Урок 504.00:02:06
Using "connectedCallback" for DOM Access
Урок 505.00:09:14
Listening to Events Inside the Component
Урок 506.00:04:46
Using Attributes on Custom Elements
Урок 507.00:04:09
Styling our Elements
Урок 508.00:05:01
Working with the "Shadow DOM"
Урок 509.00:05:42
Adding an HTML Template
Урок 510.00:01:51
Using Slots
Урок 511.00:03:22
Defining the Template in JavaScript
Урок 512.00:02:41
Using Style Tags in the Shadow DOM
Урок 513.00:07:34
Extending Built-in Elements
Урок 514.00:00:50
The Next Steps
Урок 515.00:02:27
Understanding Shadow DOM Projection
Урок 516.00:03:46
Styling "slot" Content Outside of the Shadow DOM
Урок 517.00:03:11
Styling "slot" Content Inside of the Shadow DOM
Урок 518.00:04:43
Styling the Host Component
Урок 519.00:02:50
Conditional Host Styling
Урок 520.00:02:29
Styling with the Host Content in Mind
Урок 521.00:06:21
Smart Dynamic Styling with CSS Variables
Урок 522.00:03:23
Cleaning Up the Overall Styling
Урок 523.00:06:18
Observing Attribute Changes
Урок 524.00:02:35
Adjusting the Component Behavior Upon Attribute Changes
Урок 525.00:06:11
Using "disconnectedCallback"
Урок 526.00:06:14
Adding a render() Method
Урок 527.00:00:53
The Next Steps
Урок 528.00:06:34
Creating the Basic Modal Component
Урок 529.00:02:31
Adding the Modal Container
Урок 530.00:05:36
Styling the Modal Elements
Урок 531.00:03:50
Adding Some General App Logic
Урок 532.00:05:24
Opening the Modal via CSS
Урок 533.00:06:38
Public Methods & Properties
Урок 534.00:05:46
Understanding Named Slots
Урок 535.00:05:11
Listening to Slot Content Changes
Урок 536.00:06:58
Closing the Modal
Урок 537.00:03:41
Dispatching Custom Events
Урок 538.00:04:54
Configuring Custom Events
Урок 539.00:04:52
Finishing it up!
Урок 540.00:06:10
Congratulations!
Last updated 11/2020