Advanced JavaScript tutorial
Styling
Styling via style attribute
style attribute units
Units mistakes
Unpacking CSS property values
Resetting styles with style attribute
Multiple styles setting
Style reading issues
Reading properties from CSS files
Converting read values
Styling with classes
Single class for styling
Disadvantage in using classes
Styles alternation with the data- attribute
Element metrics
Expanding elements in CSS
A test element
Client size of an element
Full size of an element
Dimensions of an element with a scrollbar
Scrolling value of elements
Changing an element scrolling
Scroll an element to the end
An element unfolding
Scrollbar width
Window metrics
Window dimensions
Window dimensions including scrolling
Getting a window scroll
Getting and changing a window scroll
Method to scroll a window to the position
Method to scroll a window by the amount
Method to scroll a window to an element
Scroll event
Map collections
Set collections
Introduction
Initial filling
Useful features
Loop iteration
Conversion
Removing duplicates from an array
Getting without duplicates
Pseudo-arrays
Introduction
Similarities with arrays
Differences
Checking for an array
To-array conversion
Pseudo-arrays types
Difference between types
Symbols
Introduction to the Symbol type
Symbol description
Symbol keys of objects
Iterating over an object with symbols
Function in an object
Operations with objects in a function
Global symbols
Retrieving a symbol name
Well-known symbols
Iterators
Iterables
Iterator function
Iterator invocation
Generators
Loops in generators
One-time iterator operation
Object iterator
Creating an iterable
Object generator using a computed property
Built-in values iterator
Built-in keys iterator
Built-in entries iterator
Three built-in iterators
Spread operator and iterators
Built-in string iterators
Array of digits of a number
DOM elements numbering
Retrieving DOM element data
JSON format
Storage
Introduction
Storage in the browser debugger
Data
One-time save
Overwriting data
Removing data
Clearing a storage
Number of entries
Getting a key by index
Iterating over a storage by indices
Key and value arrays of a storage
Saving structures
Modifying stored structures
Practicum
Regular expressions
Introduction
Quantifiers
Grouping parentheses
Special characters escaping
Curly braces
Limitaion of greediness
Сharacters groups
Characters sets
Inverting character sets
Cyrillic alphabet features
Special characters within sets
Character groups within sets
Special exception characters within sets
Hat symbol inside sets
Hyphen features inside sets
Ignoring case
Line boundary
Word boundary
Multiline
'OR' command
Variable with a regex
test method
search method
split method
match method
Capturing groups in the match method
Global match
Global matchAll
exec method
lastIndex property
Capturing groups in the replace method
Callback in the replace method
Default capturing groups in the replace method
Сapturing groups in a regex itself
Named capturing groups
Named capturing groups inside a regex
Non-capturing groups
Positive and negative lookaround
String with a regex
String modifiers
Backslash in strings
Exceptions
Introduction
Exceptions types
Catching exceptions
Development with try-catch
Catching exceptions in a nested code
Object with an error
Main types of exceptions
Applying exception types
Throwing an exception
Throwing different types of exceptions
Throwing custom exception types
An example of an exception with data- attributes
Exception with JSON example
Rethrowing an exception
Asynchrony
Synchronous vs asynchronous code
Event model asynchrony
Image loading asynchrony
Exceptions in asynchronous code
Async callbacks
Introduction
Asynchronous passing a result to callback
Passing parameters to an async callback
Handling exceptions in async callbacks
Loading images
Callback hell issue
Async image loading in a loop
Promises
Promises introduction
Exceptions
Object with an error
Individual exception catching
Promise states
Chaining promises
Promises within a chain
Exceptions in promise chain
Working with array of promises
Creation of an fulfilled promise
Promisification of an async code
Promise hell issue
Promises in a sync style
Exceptions in sync style
Libraries
Tools
Semantic versioning
Terminal
NodeJS
Introduction to npm
Installing via npm
install command shortcut
Dependencies in a package.json
Dev dependencies
Dependency version formats
The package.json file settings
Creating a package.json file
Moving an npm project
package-lock.json file
Updating packages
Uninstalling packages
Global installing packages
Global uninstalling packages
npx tool
Running scripts with npm
Yarn manager
ES modules
Introduction to modules
Enabling ES modules
Installing Webpack
How Webpack works
Configuring Webpack
Configuring the Webpack build running
Test build using Webpack
Including a bundle in markup
Creating an ES module
ES module import
Aliases on import
Entire module content import
Export by default
Combination of exports
Entire content import on combination of exports
Exporting values
Values as constants
npm modules import
Dynamic import
Dynamic multiple import
CommonJS modules conversion
HTTP protocol
Test server
Introduction
Usage
Code execution
HTML generation
Response headers
Setting up a port
Multiple launch
Forms
Submitting a form
Form submission methods
Submitting forms using GET method
Submitting forms using POST method
GET request
Using GET requests
Form buttons
Submitting a form via JavaScript
Preventing a form submission
Intro in FormData
FormData Methods
FormData Iterators
AJAX
Introduction to AJAX
fetch basics
HTTP response code
Request success
Exceptions
Full catching errors
HTTP response headers
Retrieving JSON
HTTP request headers
GET request
POST request
Data via URLSearchParams
Data via FormData
Submitting an entire form
Sending JSON
CORS policy
Passing cookies
Synchronous style
Working with canvas
Getting started
Line drawing
Drawing a rectangle
Drawing a circle
Line color change
Line width change
Loops
Code optimization
Factors that affect website loading speed
Available resources
Optimization of repetitive operations
Optimizing a repetition of heavy operations
Optimization of loop operations
Optimizing the number of loop iterations
Optimization via built-in functions
Choosing an optimal algorithm
Optimizing the use of regexes
Optimization of work with DOM
Optimizing memory consumption
Optimization when converting to an array
Event handlers usage optimization
Optimizing speed using memory