Advanced JavaScript Workshop

As Douglas Crockford once said, JavaScript is the world’s most misunderstood programming language. It is also one of the world’s most popular programming languages and one of the cornerstones of a modern web application development. 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 JavaScript hands-on workshop you will learn how to write good code (by employing its good features and avoiding quirks and common pitfalls).

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 to functional programming concepts
  • Apply asynchronous and event-driven patterns

Programme

  • 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 and this
    • 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

Audience

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.

Labs & Exercises

This workshop is a combination of lectures, discussions and practical exercises.

Installation Guide

  • Workstations with internet access
  • Git client
  • NodeJS 14
  • Google Chrome (or any other modern browser)
  • Visual Studio Code (or any other text-editor/IDE)

This is a BYOD (bring your own device) workshop.