Brendan Church

Modern
JavaScript

  • full-day

JavaScript is no longer used just for writing simple website scripts. It’s a modern and flexible language that stands out for the freedom it grants when it comes to programming style and application design. That is, paradoxically, also its biggest problem and one of the reasons for the bad reputation it often gets. But it’s also a good reason for getting to know all its specifics, virtues and weaknesses.

JavaScript is no longer used just for writing simple website scripts. It’s a modern and flexible language that stands out for the freedom it grants when it comes to programming style and application design. That is, paradoxically, also its biggest problem and one of the reasons for the bad reputation it often gets. But it’s also a good reason for getting to know all its specifics, virtues and weaknesses.

Since its inception, JavaScript has come a long way and it is now considered one of the most important programming laguage. Thanks to its flexibility, it takes many forms. In its traditional role on the side of the browser, it drives web applications for billions of people. But, under the moniker of Node.js, it also serves as a tool for creating server-side services.

This very flexibility, however, becomes a stumbling block for many novices. In the workshop, you’ll discover what makes JavaScript different, how to approach application design and avoid common errors. You’ll also learn to use the basic building blocks of the language in a series of practical examples.

Who is it for

You use JavaScript here and there, but don’t understand it well and struggle most of the time. Or perhaps you have experience with different, more traditional language – for example Java – and you can’t get your head around all the features JavaScript offers, like functional programming or prototypes. Or maybe you work with JavaScript all the time, but only in conjuction with a framework like Angular, and you would like to be able to use it on its own.

Required knowledge

You’ll need basics of programming in any procedural language and knowledge of terms like variable, function, data types, loops and control structures (if, while and similar).

Contents

Grammar

  • data types
  • functions as objects
  • array functions

Context and closures

  • dynamical and lexical context
  • how to create a context
  • “magical” this
  • closures over contexts

Prototypal delegation

  • delegation and inheritance
  • “classes” in JavaScript
  • application design using prototypes

Asynchronous operations

  • concurrency in JavaScript
  • callbacks and inversion of control
  • operations over Promise
  • iterators, generators and async functions