About this Course

Tech Type Performance Plus
Duration 5 Days
Special Notices

For Attend From Anywhere attendees: as you will have access to Labs as part of your course, you are required to have a Dual Monitor Setup.

From the simplest webpage to complex enterprise scale web applications JavaScript is an essential skill for any developer or designer. This course takes an in-depth look, from first principals in how to effectively program JavaScript through to best practices for large scale reusable code libraries.

Target audience
Whether you are new to programming and need to learn how to wrangle the powerful and flexible language or you are an experienced object orientated programmer who needs to understand the how and why of JavaScript you will find this course an essential skill.


  • Delegates must be familiar with HTML and CSS with around six months experience and a skillset equivalent to Building an Effective Web Site (www.qa.com/QAEFFWEB).

  • Some familiarity with programming would be beneficial and we recommend Programming Foundations (www.qa.com/QAPROGFOU) to new developers.

Please note: Before attending this class delegates must have a Microsoft account (signing up one is free). The instructions on how to set up a Microsoft account can be found here.

Delegates will learn how to

  • Manage JavaScript types effectively
  • Program using flow of control
  • Understand functions, object and arrays
  • Hold associated data in JavaScript collections
  • Create new HTML content using the DOM
  • Understand the BOM
  • Hook up events
  • Work with forms and regular expressions
  • Understand closures and self-executing functions
  • Work with AJAX and JSON
  • Work with JavaScript frameworks such as VueJS
  • Use modern and progressive JavaScript (ES2015+)


Module 1 - Introduction to JavaScript

  • What is JS, ES and the language development
  • Placing script into a web page
  • Basic developer tools

Module 2 – Types

  • Understanding JS types and variable declarations
  • Primitive types, including string literal syntax
  • Reference types
  • Checking types
  • Operators

Module 3 – Flow of Control

  • Selection statements
  • Simple loops

Module 4 – Collections

  • Arrays
  • Creating arrays
  • Accessing arrays
  • Array functions
  • Destructuring arrays
  • Array iterators
  • Collections – maps and sets
  • Objects
  • Creating objects
  • Accessing objects
  • Enhanced object literals
  • Object functions
  • Destructuring objects

Module 5 – Functions

  • Creating functions
  • Calling functions
  • Functions and scope
  • Default and rest parameters

Module 6 - Iterators

  • Object iterators
  • Creating iterable objects
  • Generator functions

Module 7 – Error Handling

  • The error object
  • Inbuilt error types
  • Using try/catch
  • Throwing errors
  • Best practices

Module 8 – The BOM

  • The BOM
  • Bom objects
  • The screen and the viewport
  • Location and History objects

Module 9 – The DOM

  • The DOM
  • Selecting elements
  • CSS selector patterns
  • Generating new content

Module 10 – Manipulating Style

  • Understanding and editing the style object
  • Calculated styles
  • Adding and removing classes

Module 11 – Event Handling

  • Understanding JS events
  • Subscription models – inline, programmatic, event listeners
  • Bubbling and capturing
  • The event object
  • The fat arrow function and this
  • Debugging events

Module 12 – Forms and Regular Expressions

  • Understanding forms
  • What are forms
  • Html5 form hierarchy
  • Selecting form elements
  • Accessing form elements
  • Form methods and events
  • Input element events
  • Form and field validation
  • Regular expressions
  • What is regex
  • Using regex to analyse data

Module 13 – Scope, Closures and IIFEs

  • Scoping
  • Closures
  • IIFEs
  • Block statements

Module 14 – Object Oriented JavaScript

  • Objects revisited
  • Creating your own objects via classes
  • Constructors and prototypal inheritance
  • Overloading and overriding
  • Sealing objects

Module 15 – Modern JavaScript Development Tools

  • Modularisation and module bundlers
  • Transpilation and cross-browser support
  • NPM and other useful tools

Module 16 – Http Requests and Asynchronous JavaScript Programming

  • Ajax, the XMLHttpRequest object and JSON
  • HTTP requests and responses
  • Promises
  • The Fetch API
  • Async and await

Module 17 – Client-Side Storage

  • Web storage
  • IndexedDB

Module 18 - Introduction to Vuejs

Performance Plus

5 Days

Delivery Method

Delivery method

Classroom / Attend from Anywhere

Receive classroom training at one of our nationwide training centres, or attend remotely via web access from anywhere.

Trusted, awarded and accredited

Fully accredited to ensure we provide the highest possible standards in learning

All third party trademark rights acknowledged.