-
Learning by doing
-
Trainers with practical experience
-
Classroom training
-
Detailed course material
-
Clear content description
-
Tailormade content possible
-
Training that proceeds
-
Small groups
The course Advanced JavaScript Programming covers many advanced aspects of the JavaScript programming language. JavaScript has become increasingly prominent with the rise of client side Frameworks such as Angular, React and Vue. The language itself has also undergone rapid development with the new standards ECMAScript 2015, 2017, 2019 and 2020 and is equipped with many new features.
The course starts with a discussion of scope in JavaScript, discussing the difference between var, let and const variable declarations and the concept of hoisting. The meaning and operation of the context dependent this keyword is also discussed.
Then there is attention for Object Oriented programming in JavaScript, which is still based on prototypes, but since ES6 is programmed with classes and objects. The JavaScript object orientation is therefore more in line with what is common in other languages.
Subsequently attention is paid to the many new features that have been introduced with the new ECMAScript standards 2015, 2017, 2018 and 2020, such as arrow or lambda functions, rest operators, spread operators and destructuring assignments, dynamic imports and optional chaining.
A number of advanced aspects of functions such as function objects, immediate invocation, callbacks, closures, currying and recursion are also discussed and attention is paid to advanced functional operations on arrays such as filter, map and reduce.
Then different techniques for handling asynchronous calls such as Promises and the async await idiom are covered. And also Reactive Programming with RxJS Observables is treated.
Subsequently attention is paid to new Web Component specifications, such as shadow and shady DOM, HTML templates and HTML Imports. Module Systems such as CommonJS and AMD are also topics on the program.
Finally a systematic discussion of how JavaScript makes asynchronous Ajax calls with the XMLHttpRequest Object and the fetch API on the program.
The course Advanced JavaScript Programming is designed for experienced Web developers who want to use advanced aspects of JavaScript in Web Applications.
Basic knowledge of JavaScript and HTML is required. Prior knowledge of Object Oriented Programming is beneficial for a good understanding.
The course has a hands-on nature. The theory is treated by means of presentation slides and is interspersed with practical exercises. Demos are used to clarify the concepts. The course times are from 9.30 up and to 16.30.
Participants receive an official certificate Advanced JavaScript Programming after completion of the course.
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 |