With web clients becoming thicker and more complex, it is no longer easy to get away with sloppy, ad-hoc JavaScript programming style.
In this hands-on JavaScript workshop you will learn how to write good code (by employing its good features and avoiding quirks and common pitfalls)

This course is run virtually over 5 half‑day sessions.
Our virtual courses offer the same expert-led, hands-on experience we've offered since 2013 — accessible from the comfort of your own home (office).
|
![]() |
Learn how to:

Apply best practices and avoid quirks and common pitfalls.

Use modern language features.

Take advantage of JavaScript’s functional and dynamic nature.

Understand lexical scope and closure.

Unit test JavaScript code.

Write clean, well-structured code.

Get acquainted with functional programming concepts.

Apply asynchronous and event-driven patterns.
Available dates
Dates coming soonOur team is happy to discuss other options with you.
Contact us at sales@skillsmatter.com and mention ref:
Private tuition and large-group discounts are also available. Find out more here.
Who should take this workshop?
This JavaScript workshop is designed for experienced Web Developers designing, creating and maintaining rich web applications. It will help you tackle the complexity and challenges of the modern Web Development.
Prerequisites
To get the most out of the workshop, you should have hands-on experience with JavaScript and be familiar with HTML, DOM, CSS and Ajax.
Workshop Outline
Modules/topics covered
- Introduction to unit testing (Jest)
- const & let
- Template strings
- Objects
- object literal
- shorthand method/property names
- getters and setters
- computed property names
- retrieving property value
- destructuring and rest operator
- default & guard operators
- updating properties & property attributes
- property enumeration
- removing properties
- immutable objects
- spread operator
- Functions
- function literal
- function expression vs. function declaration
- arguments
- default arguments and rest parameters syntax
- destructuring arguments
- arrow functions
- invocation patterns
- return
- prototype
- Arrays
- array literals
- destructuring and spread operator
- enumerating arrays
- transform arrays using Array.prototype.filter, Array.prototype.map & co
- “fold” arrays using Array.prototype.reduce
- Functions, part two
- lexical scope
- closure
- higher-order functions
- Function.prototype.bind
- currying and partial application
- composability and functional composition
- pointfree
- Unit testing asynchronous code
- OOP
- constructor and factory functions
- classes
- inheritance
- mixins
- Asynchronous programming patterns
- callbacks
- promises
- observable