WEB-JS2-2

Advanced JavaScript programming II.

Choose your participation format
Choose your training format
Length of training
  • 2 day (2×8 Lessons)
  • daily 9:00 - 17:00
Available languages
  • Hungarian
Choose a date

Training price

195 000 Ft
+ VAT/person
Please choose the date and form of participation!
Would you like a custom made solution, group training on this topic?
Find out more about our customised training services here.

Description

This course helps participants master some of JavaScript’s most advanced and powerful features, with a focus on asynchronous programming, object-oriented programming, and a deeper understanding of the this keyword.

Participants explore the concepts behind asynchronous programming in depth, from promises and async/await syntax to generator functions. They learn to write clean, efficient, modern JavaScript code that follows industry standards and best practices.

Through practical examples, participants learn to use regular expressions, apply best practices for exception handling, work with object-oriented programming patterns, and understand how the this keyword behaves across different contexts. The course aims to develop senior-level JavaScript skills for building complex, scalable, and maintainable applications.

Suggested For

This course is designed for people who:

  • Have a solid grasp of JavaScript fundamentals and are familiar with advanced language features
  • Have mastered the material covered in the Advanced JavaScript I course
  • Aspire to become senior developers
  • Want to gain an in-depth understanding of asynchronous programming
  • Want to learn object-oriented programming in JavaScript
  • Want to understand how the this keyword behaves in every context
  • Want to build enterprise-grade applications

Benefits

What will you be able to do after the course?

  • Use regular expressions effectively in production code
  • Apply appropriate exception-handling techniques in different situations
  • Use promises and the Fetch API with confidence
  • Explain how asynchronous programming works with callbacks, promises, and async/await
  • Write and use generator functions
  • Use async/await syntax fluently
  • Explain how the this keyword behaves in every context
  • Use advanced techniques for working with objects
  • Apply object-oriented programming techniques in professional JavaScript projects

The course aims to help participants develop senior-level JavaScript skills. They will master advanced language features, gain an in-depth understanding of asynchronous programming, and learn to apply object-oriented patterns in JavaScript.

Participants learn when and how to apply these techniques. A thorough understanding of the this keyword, asynchronous programming, and object-oriented patterns equips them to build complex, enterprise-grade applications and take on leadership roles within development teams.

Outline

The RegExp Object

  • Regular expression syntax (basic patterns and special characters)
  • Pattern matching (finding matches in text)
  • Using regular expression flags (g, i, m, and others)
  • The test(), match(), and replace() methods
  • Using regular expressions to validate forms and user input
  • Practical examples (patterns for email addresses, postal codes, and license plate numbers)

Exception Handling

  • The try...catch...finally statement
  • The Error object (error types and messages)
  • Defining custom Error classes
  • Throwing exceptions with throw
  • Handling asynchronous errors with promises and async/await
  • Best practices for logging errors and displaying user-friendly messages

Promises and the Fetch API

  • Creating promises (resolve and reject)
  • Chaining then(), catch(), and finally()
  • Using promise chains to process results step by step
  • Using Promise.all(), Promise.race(), and Promise.allSettled()
  • Making GET and POST requests with the Fetch API
  • Working with HTTP requests and responses (status codes, headers, and bodies)
  • Processing responses (parsing JSON and handling errors)

Asynchronous Programming

  • Asynchronous programming fundamentals (blocking and non-blocking execution)
  • Callback hell
  • How the event loop works (the call stack and task queues)
  • Microtasks and macrotasks (promise callbacks and setTimeout() callbacks)
  • Asynchronous programming patterns and best practices (code structure and error handling)

Generator Functions

  • Generator syntax (function* declarations)
  • The yield keyword (producing values one at a time)
  • The iterator protocol (next(), done, and value)
  • Generator use cases (lazy evaluation and infinite sequences)
  • Asynchronous iterators (for await...of)

Async Functions

  • Async/await syntax
  • Handling errors in async functions with try...catch
  • Comparing promise chains and async/await (readability and error handling)
  • Concurrent and sequential execution (combining Promise.all() with await)
  • Top-level await (using await at the module level)

The this Keyword

  • How the value of this depends on how a function is called
  • this in regular function calls
  • this in object method calls
  • this in constructor calls with new
  • Arrow functions and lexical this binding
  • The bind(), call(), and apply() methods
  • this in asynchronous contexts (callbacks and event handlers)

Advanced Objects

  • Property descriptors (writable, enumerable, and configurable)
  • Getters and setters for computed property values
  • Creating objects with a specified prototype using Object.create()
  • The prototype chain and inheritance
  • Object methods (Object.freeze(), Object.seal(), Object.assign(), and others)
  • Proxy and Reflect (intercepting and forwarding object operations)

Object-Oriented Programming

  • Object-oriented programming principles in JavaScript (encapsulation, inheritance, and polymorphism)
  • Constructor functions as a traditional object-oriented pattern
  • ES6 classes and class syntax
  • Inheritance with extends and super
  • Encapsulation (public interfaces and private implementation details)
  • Polymorphism and common interfaces
  • Private fields and methods (# syntax)
  • Static methods (methods defined on the class itself)
  • Design patterns with practical examples (Factory, Singleton, Module, and others)
Outline (PDF)

Prerequisites

  • Understanding how variable declarations work (var, let, const, hoisting, and the temporal dead zone)
  • Confident use of ES6+ features (arrow functions, destructuring, spread syntax, and rest parameters)
  • Advanced array methods (map(), filter(), reduce(), flatMap(), find(), and others)
  • Template literals and advanced string methods
  • Using the JavaScript module system (import and export, default and named exports)
  • Understanding closures and applying them in practice

The course assumes that participants already use JavaScript at a professional level and are familiar with all the material covered in Advanced JavaScript I. This is the most advanced JavaScript course in the series and is designed to develop senior-level skills. Participants should be able to build complex applications independently, have a deep understanding of how the JavaScript engine works, and be ready to master asynchronous programming, object-oriented programming, and advanced language constructs.