JavaScript Advanced
This training gives a deeper understanding of JavaScripts complicated features, syntax constructions and inner mechanisms. It will be useful for developers who already have experience in JavaScript.
32 hours
Online
English
WEB-024
JavaScript Advanced
Sign Up
Duration
32 hours
Location
Online
Language
English
Code
WEB-024
Schedule and prices
Training for 7-8 or more people? Customize trainings for your specific needs
JavaScript Advanced
Sign Up
Duration
32 hours
Location
Online
Language
English
Code
WEB-024
Schedule and prices
Training for 7-8 or more people? Customize trainings for your specific needs

Description

This training gives a deeper understanding of JavaScripts complicated features, syntax constructions and inner mechanisms. It will be useful for developers who already have experience in JavaScript but want to unlock the full potential of the language, and start to use various lesser known but still very interesting and helpful possibilities.
After completing the course, a certificate
is issued on the Luxoft Training form

Objectives

After the training, the attendees will:

  • better understand JavaScript language;
  • get to know JavaScript types and type conversions in depth;
  • learn asynchronous programming;
  • use REST services and websockets to communicate with the server;
  • use workers and parallel programming;
  • use service workers for caching;
  • use functional and reactive programming.

Target Audience

Target Audience:

  • JavaScript developers
  • TypeScript developers
  • Web developers
  • NodeJS developers

Prerequisites

Knowledge of JavaScript

Roadmap

JavaScript basics in depth 
  • Class Object
  • Object descriptors
  • Object methods
  • Prototype inheritance
  • Symbols
  • Iterators
  • Generators
  • Creating iterable objects
  • Async generators
JavaScript types in depth
  • Types overview
  • Type Number
  • Floating point and rounding problems
  • Type String
  • Type Boolean
  • Type conversions
  • Map, Set, WeakMap, WeakSet
  • BigInt
  • ArrayBuffer
  • Typed arrays
  • DataViews
  • Blobs
  • FileReader
  • Processing the uploaded files
Asynchronous programming 
  • Asynchronous calls
  • Using this in callbacks
  • Promise class
  • Promise exception handling
  • Methods all(), any(), race(), allSettled()
  • Promise cancellation with Promise.race()
  • Promise cancellation with AbortController
  • Async/await syntax
  • Async/await Syntax: Exception Handling
  • Async/await Syntax: top-level await
  • Async/await Syntax: Constraints
  • REST architecture
  • HTTP status codes
  • HTTP methods
  • Statelessness and Scalability
  • CRUD Operations and Rest Services
  • Returned Data Format: XML, JSON, XHTML
  • Fetch Function
  • Fetch with possibility to abort request
  • Axios library for REST calls
  • Handling Errors in Axios
  • Request Canceling in Axios
  • Axios Interceptors
  • WebSocket protocol
  • WebSocket in a Browser
  • WebSocket on server (Node.js)
  • When to Use WebSocket?
Workers and parallel programming 
  • Workers
  • Worker types
  • Worker APIs
  • Registering worker
  • Worker use cases
  • Service workers
  • Cache API
  • Registering Service worker
  • Service worker lifecycle
  • Service worker as a server proxy
  • Cache First strategy (Cache Falling Back to Network)
  • Network First strategy (Network Falling Back to Cache)
  • Stale-While-Revalidate strategy
  • Which strategy to use
  • Update cache on push message strategy
  • Update cache on background synchronization strategy
Functional programming
  • Functions as data
  • Function Arguments and Arguments Array
  • Functions as Methods
  • Call and apply methods
  • Binding a Function to an Object
  • Closures
  • Creating an encapsulated value through closure
  • Constructor function
  • Array functions: map/filter/reduce
  • Programming paradigms
  • Declarative versus imperative
  • Functional programming
  • High-ordered functions
  • Pure functions
  • Benefits of pure functions
  • Immutability
  • Immutability of objects: Spread Operator
  • Benefits of immutability
  • Immutable.js
  • Nested data structures in Immutable.js
  • Monads and functional composition
  • Function pipe()
  • Decomposition of the functions
  • Monads for SIMD operations
  • Partial application of the function
  • Currying
  • Null safety
  • Null Object Design Pattern
  • Maybe monad
  • Partially defined function
  • Rules of Good Code for Writing Functions
  • Functional Design Patterns
  • MVC design pattern with pure functions
  • Observer design pattern
  • Event sourcing design pattern
  • REDUX design pattern
  • REDUX DevTools
  • REDUX advantages
  • Reactive programming design pattern (RxJS)
  • Filter/map/take operators
  • MergeMap/ConcatMap/SwitchMap operators
  • Window/Buffer operators
  • Sample/Throttle/Debounce operators
  • Reactive programming benefits and use cases

Schedule and prices
View:
Register for the next course
Registering in advance ensures you have priority. Well notify you when we schedule the next course on this topic
+
Courses you may be interested in
JavaScript development
In this training we look at JavaScript (EcmaScript 2015+), using JavaScript for working in browsers (UI events, manipulating HTML with DOM CSS), JavaScript modules (NPM, Webpack), working with the server (HTTP protocol, REST, AJAX, Axios, WebSocket).
TypeScript Programming
TypeScript is a strongly typed programming language which is built on top of JavaScript. It includes a typing system to facilitate the validation of JavaScript applications.
View Catalog
Your benefits
Expertise
Our trainers are industry experts, involved in software development project
Live training
Facilitated online so that you can interact with the trainer and other participants
Practice
A focus on helping you practice your new skills
Still have questions?
Connect with us
Thank you.
Your request has been received.
Thank you!
The form has been submitted successfully.