Opleiding: Advanced JavaScript Programming
The course Advanced JavaScript Programming covers many advanced aspects of the JavaScript programming language.Declarations and Scope
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.
Classes and Objects
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.
ECMA Standards
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.
Advanced Functions
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.
Promises, Async and RxJSObservables
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.
Module Systems
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.
Ajax and REST APIs
Finally a systematic discussion of how JavaScript makes asynchronous Ajax calls with the XMLHttpRequest Object and the fetch API on the program.
Audience Course Advanced JavaScript Programming Course
The course Advanced JavaScript Programming is designed for experienced Web developers who want to use advanced aspects of JavaScript in Web Applications.
Prerequisites Course Advanced JavaScript Programming
Basic knowledge of JavaScript and HTML is required. Prior knowledge of Object Oriented Programming is beneficial for a good understanding.
Realization Training Advanced JavaScript Programming
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.
Certification Course Advanced JavaScript Programming
Participants receive an official certificate Advanced JavaScript Programming after completion of the course.
Modules
Module 1 : Scope and Context
- 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
Module 2 : Classes and Objects
- 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
Module 3 : ECMAScript Standards
- 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
- Function Declarations
- Function Expressions
- Default Parameters
- Variable Arguments
- Closures
- Immediate Invocation and IIFE’s
- Callbacks
- Recursion
- Currying
- map and filter
- ForEach
- reduce
Module 5 : Promises and Async
- 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
Module 6 : RxJS Observables
- 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
- 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
Module 8 : Components and Modules
- 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
Module 9 : Ajax and REST API's
- 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