JavaScript Advanced

JavaScript Advanced

This training gives a deeper understanding of JavaScript’s complicated features, syntax constructions and inner mechanisms. It will be useful for developers who already have experience in JavaScript.

Duration
36 hours
Course type
Online
Language
English
Duration
36 hours
Location
Online
Language
English
Code
WEB-024
Training for 7-8 or more people? Customize trainings for your specific needs
JavaScript Advanced
Duration
36 hours
Location
Online
Language
English
Code
WEB-024
€ 850 *
Training for 7-8 or more people? Customize trainings for your specific needs

Description

This training gives a deeper understanding of JavaScript’s 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.

certificate
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


Still have questions?
Connect with us