JavaScript Masterclass

Duration: 2 days

This richly layered and comprehensive course provides the perfect framework in which to learn about JavaScript. Over the 2 days each student will take on-board detailed explanations of everything from the ground up to advanced JavaScript development

It is expected that delegates will be familiar with Java, C#, Python or a similar programming language as well as show fluency in HTML.

Please find the course objectives below:

The main focus of this course is to work with experienced developers to significantly raise their level of knowledge and understanding of JavaScript, JavaScript frameworks, libraries and test/behaviour driven development.

JavaScript Introduction

Core JavaScript

  • Introduction to JavaScript/ECMAScript/ES
  • List the various versions and their support
  • Explain language basics (literals, identifiers, oeprators and reserved words)
  • Introduce the JavaScript Type System
  • Discuss equality (difference between == and ===)
  • Explain falsy/truthy values
  • Introduce the global object
  • Understand type JavaScript type coercion
  • Declare variables (var, let and const)
  • Declare named functions
  • Understand variable hoisting
  • Discuss different types of expressions (arithmetic, logical etc)
  • Appreciate strict mode
  • Use linters such as JSHint
  • Introduce NodeJs, npm and yarn

JavaScript Language

  • Introduce the JavaScript statements (if, switch, while/do, for, etc )
  • Understand and use Exceptions
  • Declare and use arrays
  • Basic types (Date, string)
  • More on functions
  • Default values for arguments
  • Using variadic Rest Parameters
  • Functions as values
  • Higher-order functions
  • Lambda expressions
  • Using clojures
  • Use arrow functions (and understand the differences)
  • partially applied functions
  • Currying in JavaScript

OO in JavaScript

  • Object literals
  • Using constructors
  • Properties and methods
  • Explain the concept of Prototypical inheritance
  • Defining constructor functions
  • Defining classes*
  • Declaring classes (constructors, fields and methods)

JavaScript in the Browser

Introduction

  • Ways to add JavaScript to pages (Unobtrusive, inline, external)
  • Dealing with cross-browser support
  • Impact on Content Security Policy headers
  • Different ways of loading external javascript (async, deferred)
  • Understand the event loop and the stack

Interacting with the Page

  • Introduce the Window and Document objects
  • Understand the structure of a DOM
  • Navigating the DOM
  • Adding and removing elements
  • Changing element properties (inner text, attributes, properties)
  • Working with events
  • Writing event handlers
  • Understand event bubbling
  • Cancelling default behaviour

Key APIs

  • Using coordinates (viewport, height/width, etc)
  • Introduction to the Canvas
  • Use video and audio
  • Introduction to drag and drop
  • Introduction to geolocation
  • Using XHR to interact with servers
  • Using the fetch API
  • Using local and session storage

Tools and Frameworks

  • Using jsdoc
  • Introduce jquery
  • Using libraries such as underscore, immutbale, monet, momentjs etc
  • Discuss tools such as gulp, grunt and webpack
  • Behaviour and Test driven development using Jasmine (and Karma)
For an onsite course please contact us