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

Introduction Useful features Loop iteration Keys and values Maps applying

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

Introduction JSON-to-data conversion data-to-JSON conversion Changing JSON data

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

Introduction Usage CDN Library disadvantages

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

Studying the HTTP tutorial URLSearchParams URL

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
enru