JavaScript Advanced

This advanced JavaScript training deepens your skills in complex JS features, asynchronous programming, and functional design. Through practical exercises, you’ll master async/await, REST, WebSocket communication, and functional programming, enabling you to build scalable, responsive applications.

  • duration 36 hours
  • Language English
  • format Online
duration
36 hours
location
Online
Language
English
Code
WEB-024
price
€ 850 *

Available sessions

To be determined



Training for 7-8 or more people?
Customize trainings for your specific needs

Description

This in-depth JavaScript Advanced course is crafted for experienced developers who want to go beyond the basics and gain a mastery over JavaScript’s powerful features and advanced capabilities. With JavaScript now playing a critical role in both client-side and server-side development, understanding its complex features, optimized workflows, and advanced programming patterns is crucial for building modern, high-performance applications. This course offers a blend of theoretical knowledge and hands-on practice to ensure you not only learn advanced JavaScript concepts but also gain the skills to apply them effectively in real-world projects.

 

Starting with a deep dive into JavaScript’s inner workings, this course covers essential topics such as prototype inheritance, object descriptors, symbols, and async generators. You’ll learn advanced type handling, including the intricacies of JavaScript’s unique data types, and gain a comprehensive understanding of iterators and iterable objects. The course then moves on to asynchronous programming, a must-have skill for today’s developers, focusing on Promises, async/await syntax, and robust REST and WebSocket communication for scalable server interactions. You’ll explore essential tools like Axios for REST API calls and WebSocket for real-time updates, enhancing your ability to manage asynchronous operations smoothly and efficiently.

 

By the end of this course, you will understand complex object-oriented concepts, work with JavaScript’s unique type system, and leverage prototype inheritance to create flexible, scalable code. Also, you will develop a robust understanding of asynchronous programming through Promises, async/await, and REST architecture. Learn how to effectively use WebSocket for real-time communications and manage API interactions with Axios, equipping you to handle server-side communication seamlessly. Dive into parallel programming using Web Workers and service workers to offload heavy tasks, cache resources, and improve app performance.

 

You’ll also learn advanced caching strategies like Cache-First, Network-First, and Stale-While-Revalidate, which are vital for optimizing applications and enhancing user experience. Finally, we will explore functional programming principles with high-order functions, closures, and pure functions and discover the benefits of immutability for building reliable and maintainable code. The course also introduces reactive programming patterns, including the use of RxJS operators (filter, map, mergeMap) to handle complex data flows. Key design patterns such as Redux, Observer, and Event Sourcing will empower you to create robust state management and responsive applications.

 

This training equips you with advanced JavaScript techniques to solve complex challenges, write cleaner and more maintainable code, and create highly scalable applications. Whether you’re working on client-side interfaces or backend services, this course provides the essential skills and modern tools needed to excel in JavaScript development and elevate your expertise.

After completing the course, a certificate is issued on the Luxoft Training form

Objectives

After the training, the attendees will:

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

Target Audience

  • JavaScript developers, TypeScript developers, Web developers, & NodeJS developers

Prerequisites

  • Knowledge of JavaScript

Roadmap

JavaScript basics in depth [7 hours]

  • Class Object
  • Object descriptors
  • Object methods
  • Prototype inheritance
  • Symbols
  • Iterators
  • Generators
  • Creating iterable objects
  • Async generators
  • Practical exercises (homework) – 2 hours

JavaScript types in depth [7 hours]

  • 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
  • Practical exercises (homework) – 2 hours

Asynchronous programming [7 hours]

  • 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?
  • Practical exercises (homework) – 2 hours

Workers and parallel programming [3 hours]

  • 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
  • Practical exercises (homework) – 2 hours

Functional programming [12 hours]

  • 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 the 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


Related courses

You may also be interested in

Discover more about professional growth and skills development

contact us