Modern JavaScript Masterclass

Duration
2 Days
Online Duration
3 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 contemporary ECMA Script development

Prerequisites

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

Course Contents

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/ECMAScript

  • 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
  • Using BabelJS

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

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)

Functional JavaScript

  • Principles of Functional Programming
  • Functional Programming in JavaScript
  • Dealing with state and mutability
  • Functions as values
  • Higher-order functions
  • Lambda expressions
  • Using clojures
  • Use arrow functions (and understand the differences)
  • partially applied functions
  • Currying in JavaScript
  • Functional Libraries

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