Cursusbeschrijving

Deze training borduurt voort op onze training JavaScript Development Core.

Waar we in die training aandacht besteden aan kernvaardigheden voor het werken met JavaScript, gaan we in deze training een stap verder door te focussen op geavanceerdere taalfeatures en technieken. Deze kennis en vaardigheden komen sterk van pas nu steeds meer projecten de kracht van “vanilla JavaScript” maximaal willen benutten. Ook op projecten waar met React, Svelte, TypeScript of testframeworks als Cypress en Playwright wordt gewerkt komen geavanceerde technieken van pas bij het structureren van code.

Je leert in deze training over het geavanceerd gebruik van functies met arrow functions en closures, het geavanceerd gebruik van objecten met encapsulatie en proxies, wat JavaScript’s inheritance-mechanisme voor je kan betekenen, wanneer Symbols van pas komen, wat Sets en Maps voor voordeel bieden, hoe iterators en generators interessante perspectieven bieden voor loops en tenslotte alles over het wrappen van asynchroon werk met Promises.

Deze training richt zich op ontwikkelaars die al een goede basis van JavaScript hebben en deze willen aanvullen om het in te zetten in een professionele omgeving. Kennis van C#, Java of C++ komt ook van pas.

Onderwerpen

  • Advanced functions
  • In deze module leer je het geavanceerd gebruik van functies
  • Lessen
  • * Function properties
  • Constructor functions
  • Het mysterie van this uit de doeken
  • Arrow functions
  • IIFE's
  • Closures
  • Template literals
  • Lab: Advanced functions
  • Na het afronden van deze module kunnen deelnemers:
  • * Bepalen wanneer een function en wanneer een arrow function te gebruiken
  • Beredeneren waar this naar wijst
  • Alle voordelen van arrow functions benutten
  • Aan de hand van IIFE's en closures begrijpen hoe libraries onder water werken
  • IIFE's en closures inzetten wanneer de situatie zich daarvoor leent
  • ### Prototypes
  • In deze module leer je wat prototypes inhouden en het toepassen ervan
  • Lessen
  • * Prototypes
  • Prototype chain
  • Prototype instellen/veranderen
  • Inheritance
  • super
  • Lab: Prototypes
  • Na het afronden van deze module kunnen deelnemers:
  • * Begrijpen hoe prototypes werken in JavaScript
  • Prototypes inzetten voor bijv. inheritance of extension methods
  • Begrijpen hoe classes zich verhouden tot prototypes
  • ### Symbols
  • In deze module leer je over Symbols: een value-type om iets uniek te adresseren
  • Lessen
  • * Symbols
  • HEt value-type
  • Ingebouwde symbols en het symbol registry
  • Symbols en properties
  • Libraries en symbols
  • Lab: Symbols
  • Na het afronden van deze module kunnen deelnemers:
  • * Symbols schrijven en benutten
  • Met Symbol.toPrimitive() invloed uitoefenen op JavaScript-conversies
  • ### Sets and maps
  • In deze module leer je over de ingebouwde types Set en Map
  • Lessen
  • * Set en Map
  • Hun zwakkere tegenhangers, WeakSet en WeakMap
  • Lab: Sets en Maps
  • Na het afronden van deze module kunnen deelnemers:
  • * Sets en Maps gebruiken wanneer de situatie zich daarvoor leent
  • ### Iterators and generators
  • In deze module leer je over itereren aan de hand van iterators en generators
  • Lessen
  • * Iterators, Symbol.iterator() en het Iterator pattern
  • Generators en yield
  • Lab: Iterators and generators
  • Na het afronden van deze module kunnen deelnemers:
  • * Iterators en generators gebruiken
  • Het iterator pattern implementeren
  • Een generator schrijven
  • ### Advanced objects
  • In deze module leer je het geavanceerd gebruik van objecten
  • Lessen
  • * Static functions op objecten: Object.is(), Object.assign(), Object.keys() en meer
  • Proxy
  • Reflect
  • Encapsulatie
  • Garbage collection
  • Lab: Advanced objects
  • Na het afronden van deze module kunnen deelnemers:
  • * Bepaalde static functies gebruiken als de situatie zich daarvoor leent
  • Proxy gebruiken om interacties te trappen
  • Reflect gebruiken voor reflection-achtige zaken
  • Functies/properties op verschillende manieren afschermen van andere stukken code
  • Inhaken op wanneer een object wordt opgeruimd door de JavaScript-engine
  • ### Promises
  • In deze module leer je over asynchroon werk doen middels promises
  • Lessen
  • * Promises maken en gebruiken
  • Promise chaining
  • Errorhandling
  • Waarden retourneren
  • Static functies als Promise.all(), Promise.allSettled() en meer
  • Handige technieken
  • async/await
  • Lab: Asynchronously read the contents of multiple files
  • Na het afronden van deze module kunnen deelnemers:
  • * Promises aanmaken en gebruiken
  • Errorhandling en chaining implementeren
  • Omgaan met parallelle promises
  • async/await gebruiken voor betere leesbaarheid
  • Materiaal

    Info Support cursusmateriaal

    Voorkennis

    Een goede basis van JavaScript. Kennis van C#, Java of C++ komt van pas