training
JavaScript Development Core
Leer professioneel ontwikkelen met JavaScript
 Beschrijving
JavaScript is nog een enigszins onbeminde, onbekende, onbegrepen en onderschatte taal. Qua uiterlijk lijkt het veel op Java, maar schijn bedriegt. JavaScript kent slechts een simpel, dynamisch en flexibel typesysteem. Het heeft niet de classes, inheritance of encapsulatie zoals we dat in traditionele OO-talen gewend zijn. Gecombineerd met invloeden van functionele programmeertalen, vreemde scoping-regels en operatoren die verraderlijk anders werken dan in Java/C#, leidt dit tot een heel andere wereld dan de traditionele objectgeoriënteerde wereld van Java/C#/C++.
Lange tijd was het genoeg om JavaScript net voldoende te kennen om kleine functies te schrijven en een event in de browser af te vangen. Maar met de komst van de moderne 'rich clients' is dat veranderd. Gedegen, professionele kennis van de taal is nodig om de kracht ervan te gebruiken en de valkuilen te ontwijken.
Je leert het typesysteem van JavaScript kennen en leert welke rol de operatoren daarbij spelen. Je ziet welke operatoren en control structures anders werken dan in Java/C#/C++. Je gaat oefenen met lexical scoping en gebruikt de overeenkomsten (en verschillen) tussen functies, arrays en objecten. Verder zullen veelgebruikte technieken/constructies als destructuren, classes en modules doorgrond worden.
Wist je dat in JavaScript:
- geldt dat: 
"1" == true ++xniet altijd dezelfde waarde oplevert alsx+1- Er geen public en private access modifiers bestaan, maar wel syntax voor getters en setters
 - Objecten, functies en arrays veel op elkaar lijken
 - De reflection API min of meer in de taal zit
 - Semicolon insertion meestal handig is, maar niet altijd
 - Vanaf ECMAScript 2015 zijn veel bestaande design patterns als taalelementen opgenomen. We besteden in deze training daarom ook uitgebreid aandacht aan de nieuwe versies van ECMAScript. Hierbij leert u de nieuwe syntax, patterns en mogelijkheden. Voorbeelden hiervan zijn de block bindings, destructuring, arrow functions, classes en modules
 
Deze training richt zich op ontwikkelaars met goede kennis van C#, Java, of C++, die JavaScript gaan gebruiken in een professionele omgeving.
Benodigde voorkennis
Basis programmeervaardigheden. Bekendheid met objectoriëntatie
Onderwerpen
Types
In deze module leer je JavaScript's typesysteem te begrijpen.
Lessen
- Built-in types
 - Primitive types als 
number,string,null,undefined, etc. - Reference types en built-in objects als 
globalThis - Regular expressions
 - Variable-declaratie en hun scope
 
Na het afronden van deze module kunnen deelnemers:
- Begrijpen hoe JavaScript omgaat met types
 - Het verschil tussen 
var,letenconstbenoemen 
Conversions
In deze module leer je alles over de conversies die JavaScript doet.
Lessen
- Wanneer conversies plaatsvinden
 - JavaScript's voorkeuren met conversies
 Object/Arraynaarstring/numbernumbernaarstringstringnaarnumber
Na het afronden van deze module kunnen deelnemers:
- Begrijpen wanneer conversies plaatsvinden
 - Begrijpen hoe objecten en primitieve waarden worden geconverteerd
 
Operators
In deze module leer je de operators van JavaScript kennen
Lessen
==vs===typeof,instanceof,delete, etcx ? y : z,...,||,&&,??,**, etc+,**,??=,||=, etc
Lab: types, conversions en operators
Na het afronden van deze module kunnen deelnemers:
- Het verschil tussen 
&&,||en??te benoemen - Alle operators herkennen en weten waar ze voor dienen
 
Control structures
In deze module leer je ...
Lessen
- Standaard control structures als 
for,ifenwhile switchfor..inenfor..of- Exception handling
 - Strict mode
 - Semicolon insertion
 
Na het afronden van deze module kunnen deelnemers:
- Weten wanneer 
inofofgebruikt moet worden metfor-loops - Het gooien en afhandelen van exceptions
 - De voordelen van strict mode benutten
 - Bepalen of je voor puntkomma's bent of tegen
 
Arrays
In deze module leer je werken met arrays en dat arrays in JavaScript eigenlijk geen arrays zijn
Lessen
- Arrays aanmaken en gebruiken
 - Dat JavaScript arrays geen typische arrays zijn
 - Array-functies aanspreken
 - Spread-operator in combinatie met arrays
 
Lab: Arrays
Na het afronden van deze module kunnen deelnemers:
- Arrays op een professionele manier inzetten
 
Objects
In deze module leer je objecten aan te maken, te gebruiken en verschillende interacties ermee te hebben
Lessen
- Objecten aanmaken
 - Object literals
 - De verschillende notaties voor het aanspreken van properties
 - De spread operator in combinatie met objecten
 - Dubbele properties en de toepassingen ervan
 - Het gebruiken van het 
JSON-object 
Lab: Objects
Na het afronden van deze module kunnen deelnemers:
- Op een professionele manier omgaan met objecten
 - Factories maken
 - Objecten naar JSON converteren en terug
 
Functions
In deze module leer je professioneel om te gaan met functies
Lessen
- Het hoisten van functies
 - Functieparameters en default parameters
 - Block-level functies
 - Arrow functions: 
() => {} 
Lab: Functions
Na het afronden van deze module kunnen deelnemers:
- Professioneel omgaan met functies
 - Functieparameters en default parameters op te nemen
 - Bepalen wanneer "gewone" functies te gebruiken en wanneer een arrow function
 
Destructuring
In deze module leer je hoe je objecten en arrays kunt destructuren
Lessen
- Destructuren van objecten
 - Destructuren van arrays
 - Destructuren van een object/array-combinatie
 - Default waarden en aliassen in te stellen
 - Rest-operator in combinatie met destructuren
 - Praktische toepassingen van destructuren
 
Lab: Destructuring
Na het afronden van deze module kunnen deelnemers:
- Een complex object of complexe array destructuren
 - Herkennen wanneer een praktische gelegenheid zich voordoet om te destructuren
 
Classes
In deze module leer je professioneel om te gaan met classes
Lessen
- Classes definiëren en gebruiken
 - Class expressions
 - Getters/setters
 static- Inheritance
 - Overriding functions
 - Abstract classes
 
Lab: Classes
Modules
In deze module leer je modulair te werken aan de hand van ES Modules
Lessen
- Waarom modules
 - Modules in de browser
 import,exporten hun variaties- Bekend raken met module bundlers
 
Lab: Modules
Na het afronden van deze module kunnen deelnemers:
- Modulair te werken gaan met 
import/export - De voordelen inzien van module bundlers
 
Planning
| Startdatum | Duur | Locatie | |
|---|---|---|---|
1 december 20252 december 20253 december 2025  | 3 dagen | Utrecht / Remote  Dit is een hybride training die remote gevolgd kan worden. Meer informatie Utrecht / Remote Dit is een hybride training die remote gevolgd kan worden. Meer informatie Utrecht / Remote Dit is een hybride training die remote gevolgd kan worden. Meer informatie  | Inschrijven | 
Incompany of persoonlijk advies nodig?
Onze opleidingsadviseurs denken graag met je mee om een persoonlijk advies te geven of een incompany training binnen jouw organisatie te vinden.
Trainers
Voorkennis trainingen
Programming with C#
Leer programmeren in C#
- Architecture
 - C#/.NET
 - General
 
Java Programming
Ontwikkelen van applicaties met de programmeertaal Java
- Java/JVM
 
Object Oriented Programming in C# By Example
Begrijp hoe echte .NET-applicaties worden opgebouwd — van syntax tot architectuur — door stap voor stap een complete RPG-game te bouwen met moderne patronen en praktijken.
- C#/.NET
 
Vervolgtrainingen
"Zeer prettige docent, gaf op een eigen manier een zeer goede invulling aan de cursus. Was prettig om zo de cursus te volgen."Marieke
-  
Hoge waardering
 -  
Praktijkgerichte trainingen
 -  
Gecertificeerde trainers
 -  
Eigen docenten