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