- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Advanced JavaScript Programmeren komen vele geavanceerde aspecten van de programmeertaal JavaScript aan de orde. JavaScript is met de opkomst van client side Frameworks als Angular, React en Vue een steeds prominentere rol gaan innemen. De taal zelf heeft ook met de nieuwe standaards ECMAScript 2015, 2017, 2019 en 2020 een snelle ontwikkeling doorgemaakt en is voorzien van vele nieuwe features.
De cursus start met een behandeling van scope in JavaScript, waarbij het verschil tussen var, let en const variabele declaraties en het begrip hoisting wordt besproken. De betekenis en werking van het context afhankelijke keyword this wordt hierbij ook aan de orde gesteld.
Dan is er aandacht voor Object Georiënteerd programmeren in JavaScript dat nog steeds gebaseerd is op prototypes, maar sinds ES6 geprogrammeerd wordt met classes en objects. De JavaScript object oriëntatie is daardoor meer in lijn met wat gebruikelijk is in andere talen
Vervolgens wordt aandacht besteed aan de vele nieuwe features die hun intrede hebben gedaan met de nieuwe ECMAScript standaarden 2015, 2017, 2018 en 2020, zoals arrow of lambda functies, rest operators, spread operators en destructuring assignments, dynamic imports en optional chaining.
Ook een aantal geavanceerde aspecten van functies zoals functie objecten, immediate invocation, callbacks, closures, currying en recursie komen aan de orde en is er aandacht voor geavanceerde functionele operaties op arrays zoals filter, map en reduce.
Verschillende technieken voor het afhandeling van asynchrone calls zoals Promises en het async await idioom worden behandeld. En ook wordt ingegaan op Reactive Programming met RxJS Observables.
Aansluitend wordt aandacht besteed aan nieuwe Web Component specificaties, zoals shadow en shady DOM, HTML templates en HTML Imports. Ook Module Systemen zoals CommonJS en AMD zijn onderwerpen die op het programma staan.
Tenslotte staat een systematische bespreking van hoe in JavaScript asynchrone Ajax calls met het XMLHttpRequest Object en de fetch API worden gedaan op het programma.
De cursus Advanced JavaScript Programmeren is bedoeld voor ervaren Web developers die geavanceerde aspecten van JavaScript in Web Applications willen leren en toepassen.
Basis kennis van JavaScript en HTML is vereist. Voorafgaande kennis van Object Oriented Programming is bevorderlijk voor een goede begripsvorming.
De cursus heeft een hands-on karakter. De theorie wordt behandeld aan de hand van presentatie slides en wordt afgewisseld met demos en praktische oefeningen. De cursustijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het doorlopen van de cursus een officieel certificaat Advanced JavaScript Programmeren.
Module 1 : Scope and Context |
Module 2 : Classes and Objects |
Module 3 : ECMAScript Standards |
Scope in JavaScript var Keyword Scope in Nested Function Lexical Scope Hoisting Nested Anonymous Function let and const Keyword Immutability Refresher on this this in Global Scope Lexical this Binding this apply and call Function bind Function |
Object Oriented Programming Objects in JavaScript Constructor Functions Object Ancestor _proto_ Property Prototype Chains Composing Prototypes ES2015 Classes Constructors Static Keyword Static Methods Inheritance Overriding Methods super Keyword |
ECMAScript 2015 up to 2020 Arrow Functions Rest Parameters Spread Operator Template Strings Iteration with for..of Destructuring Assignments Exponentiation Operator Dynamic Imports Import Meta Data Module Syntax BigInt Data Type nullish Coalescing Operator Optional Chaining |
Module 4 : Advanced Functions |
Module 5 : Promises and Async |
Module 6 : RxJS Observables |
Function Declarations Function Expressions Default Parameters Variable Arguments Closures Immediate Invocation and IIFE’s Callbacks Recursion Currying map and filter ForEach reduce |
Asynchronous Code Callbacks versus Promises Promise Chaining Creating Promises Resolving Promises Catching Errors Parallel Execution Promise States Consuming Promises Promises Guarantees Promises are Asynchronous Async Await |
Observable sequence Create Data Stream Combining and merging Filtering and transform Creating Subjects Emitting events Subscribing to observables Hot and Cold Observables Laziness Subscribe in RX Observable Operators flatmap, join, zip |
Module 7 : Generators and Decorators |
Module 8 : Components and Modules |
Module 9 : Ajax and REST API's |
Iterables and Iterators Iterator Protocol next Function Symbols Built-in Symbols Symbol.iterator Generator Functions yield Keyword yield Expressions Decorators Aspect Orientation Annotations Class and Method Decorators |
Web Component Specifications Custom Elements Creating and Extending HTML Templates Activating Templates HTMLImports Shadow DOM Shady DOM Module Systems CommonJS Module System Asynchronous Module Definition Internal and External Modules Imports and Exports |
Ajax Web Applications Ajax Asynchronous Model Typical Ajax Interactions Drawbacks of Ajax XMLHttpRequest Reading Responses Fetch API Loading JSON REST API's Standard Methods Accessing Remote Sites CORS JSONP |