course
JavaScript Fundamentals
Build production-ready JavaScript with confidence
Description
JavaScript powers modern web applications, server-side services, and development tooling. To use it professionally, you need more than syntax: you need to understand how the language behaves in real code.
In this training, you build a solid foundation in JavaScript semantics, types, scope, and operators. You learn where JavaScript differs from classical OO languages and how to write predictable, maintainable code.
You practice with functions, arrays, and objects, and apply practical techniques such as destructuring, classes, and modules. The focus is on decisions you make every day that improve code quality and delivery speed.
Did you know that, in JavaScript:
"1" == trueevaluates totrue++xdoes not always result in the same value asx + 1- There are no
publicorprivatekeywords, but there is syntax for getters and setters - Objects, functions, and arrays are closely related language constructs
- Reflection capabilities are largely built into the language
- Semicolon insertion is often useful, but can still surprise you
- Modern ECMAScript includes language features that replace older boilerplate patterns, such as block bindings, destructuring, arrow functions, classes, and modules
This course is for developers who build software professionally and want to use JavaScript with confidence, including developers transitioning from C#, Java, or C++.
Prior Knowledge
Basic programming skills. Familiarity with object-oriented concepts.
Subjects
Types
In this module, you build a practical understanding of JavaScript's type system.
Lessons
- Built-in types
- Primitive types such as
number,string,null,undefined, etc. - Reference types and built-in objects such as
globalThis - Regular expressions
- Variable declarations and their scope
After completing this module, students will be able to:
- Explain how JavaScript handles values and types
- Distinguish clearly between
var,letandconst
Conversions
In this module, you learn how JavaScript performs type conversions and coercion.
Lessons
- When conversions take place
- JavaScript's conversion preferences
Object/Arraytostring/numbernumbertostringstringtonumber
After completing this module, students will be able to:
- Identify when conversions take place
- Explain how objects and primitive values are converted
Operators
In this module, you learn how to use JavaScript's operators safely and effectively.
Lessons
==vs===typeof,instanceof,delete, etc.x ? y : z,...,||,&&,??,**, etc.+,**,??=,||=, etc.
Lab: types, conversions and operators
After completing this module, students will be able to:
- Explain the difference between
&&,||and?? - Recognize key operators and choose the right one for the job
Control structures
In this module, you learn to apply JavaScript's control structures in production code.
Lessons
- Standard control structures such as
for,ifandwhile switchfor..inandfor..of- Exception handling
- Strict mode
- Semicolon insertion
After completing this module, students will be able to:
- Choose correctly between
for..inandfor..of - Throw and handle exceptions effectively
- Apply strict mode in the right contexts
- Make consistent decisions about semicolon usage
Arrays
In this module, you learn how JavaScript arrays work and why they differ from fixed-size arrays.
Lessons
- Create and use arrays
- Why JavaScript arrays are not your typical arrays
- Use array functions
- Use the spread operator with arrays
Lab: Arrays
After completing this module, students will be able to:
- Work with arrays confidently in professional code
Objects
In this module, you learn to create, model, and manipulate objects effectively.
Lessons
- Create objects
- Object literals
- Different notations for accessing properties
- Duplicate properties and their applications
- Using the
JSONobject
Lab: Objects
After completing this module, students will be able to:
- Work with objects in a professional manner
- Create factories
- Convert objects to JSON and vice versa
Functions
In this module, you learn to use functions as a core design tool in JavaScript.
Lessons
- Function hoisting
- Function parameters and default parameters
- Block-level functions
- Arrow functions:
() => {}
Lab: Functions
After completing this module, students will be able to:
- Handle functions professionally
- Apply function parameters and default parameters effectively
- Determine when to use regular functions and when to use an arrow function
Destructuring
In this module, you learn how destructuring improves readability and intent in code.
Lessons
- Destructuring objects
- Destructuring arrays
- Destructuring an object/array combination
- Set default values and aliases
- Using the rest operator in combination with destructuring
- Practical applications of destructuring
Lab: Destructuring
After completing this module, students will be able to:
- Destructure complex objects and arrays
- Recognize when destructuring is the most practical option
Classes
In this module, you learn to use classes clearly and pragmatically in JavaScript.
Lessons
- Define and use classes
- Class expressions
- Getters/setters
static- Inheritance
- Overriding functions
- Abstract classes
Lab: Classes
After completing this module, students will be able to:
- Define and use classes
- Write getters/setters on a class
- Define
staticfunctions and properties - Apply inheritance where it adds value
- Build classes that behave as abstract contracts
Modules
In this module, you learn to structure applications in a modular way using ES Modules.
Lessons
- Why modules
- Modules in the browser
import,exportand their variations- Getting acquainted with module bundlers
Lab: Modules
After completing this module, students will be able to:
- Work in a modular way using ES Modules
- Understand the advantages of module bundlers
Schedule
| Start date | Duration | Location | |
|---|---|---|---|
April 20, 2026April 21, 2026April 22, 2026 | 3 days | Utrecht / Remote This is a hybrid training and can be followed remotely. More information Utrecht / Remote This is a hybrid training and can be followed remotely. More information Utrecht / Remote This is a hybrid training and can be followed remotely. More information | Sign up |
May 4, 2026May 5, 2026May 6, 2026 | 3 days | Utrecht / Remote This is a hybrid training and can be followed remotely. More information Utrecht / Remote This is a hybrid training and can be followed remotely. More information Utrecht / Remote This is a hybrid training and can be followed remotely. More information | Sign up |
June 1, 2026June 2, 2026June 3, 2026 | 3 days | Veenendaal / Remote This is a hybrid training and can be followed remotely. More information Veenendaal / Remote This is a hybrid training and can be followed remotely. More information Veenendaal / Remote This is a hybrid training and can be followed remotely. More information | Sign up |
All courses can also be conducted within your organization as customized or incompany training.
Our training advisors are happy to help you provide personal advice or find Incompany training within your organization.
Trainers
Prior knowledge courses
C# Intermediate
Expand your C# knowledge
- Architecture
- C#/.NET
- General
Java Programming Fundamentals
Learn the Java language for 3GL programmers
- Java/JVM
Object-Oriented Programming in C# by Example
Understand how real-world .NET applications are built — from syntax to architecture — by creating a complete RPG game step by step, with modern patterns and practices.
- C#/.NET
Follow-up courses
"Extremely good teacher"Sander
-
Hoge waardering
-
Praktijkgerichte trainingen
-
Gecertificeerde trainers
-
Eigen docenten