ECMAScript Programming: The Next Generation JavaScript (NGJS) – Outline

Detailed Course Outline

Introduction and Overview

  • Revisiting JavaScript history
  • Incorporating ECMAScript new versions and features
  • Mapping TC39 release stages
  • Moving ECMAScript to the server

Advanced JavaScript Techniques

Exploring JavaScript language features

  • Programming with a weakly typed language
  • Exploiting JavaScript’s dynamic nature
  • Working with strings, numbers, dates, arrays

Developing Functional JavaScript Code

  • Comparing function definitions vs. function expressions
  • Manipulating function callbacks
  • Passing functions as arguments
  • Immediately invoked function expressions
  • Understanding closures

Building JavaScript objects

  • Coding object literals
  • Adding properties and methods to objects
  • Instantiating objects with constructor functions
  • Defining prototype methods
  • Serialising data with JSON
  • Requesting services with XMLHttpRequest

Transitioning to ECMAScript 2015

Writing ECMAScript that runs everywhere

  • Transpiling ECMAScript with Traceurand Babel
  • Exploring transpiled code
  • Ensuring best practices with strict mode

Simplifying variables and strings

  • Declaring block scope variables with let
  • Programming constants
  • Exploiting new string methods
  • Formatting output with template literals

Managing collections of data

  • Taking advantage of new array methods
  • Enumerating collections with iterators
  • Manipulating data with sets and maps
  • Producing iterable data with generators and yield

Streamlining functional programming with ES6

  • Making asynchronous programming easier with promises
  • Defining arrow functions
  • Passing arrow functions as callbacks

Exploiting ECMAScript 6 Object-Oriented Features

Classes and Inheritance

  • Defining classes
  • Adding properties and methods to classes
  • Simulating private state with WeakMap
  • Creating unique property keys with symbols
  • Coding getters, setters and constructors
  • Extending classes with inheritance

Reusing JavaScript

  • Defining modules
  • Exporting and importing classes and functions
  • Importing module functionality

Running ECMAScript Server-Side

Building applications for Node.js

  • Installing Node.js
  • Setting up a Node.js development environment
  • Managing packages with npm
  • The build process with webpack

Web services

  • Creating Node.js web applications with Express
  • Exposing RESTful services
  • Calling Node.js services

Accessing stored data

  • Processing NoSQL data with MongoDB
  • Providing relational database data

Crafting Enterprise ECMAScript Applications

Deploying quality code

  • Unit testing ECMAScript with Jest
  • Integrating code quality and analysis tools

Publishing ECMAScript applications

  • Minimising download size with tree-shake
  • Integrating resource hashes for cache-busting