ECMAScript 6
ECMAScript 6 Course Content:
Introduction to JavaScript
Introducing Modern JavaScript
- Controlling access, type and mutability
- Functions, scope, namespaces and closure
- Object serialization
- Overview of AJAX principles
- JavaScript security
- Client Side Event handling
- Client Side data persistence
- Polyfills
- ECMAScript 6 objects, properties and methods
- Classes, subclasses and constructors: Object-Oriented techniques in JavaScript
Current and Imminent Support
- Features which are already supported in some browsers and devices
- Forthcoming built-in support
- Legacy: where support will never happen
JavaScript Design Patterns (focussing on ECMAScript 6)
- Modular JavaScript principles
- MVC, MVVM, Service, Factory etc.
Building the User Experience: overview of modern JavaScript frameworks
- The jQuery family
- Angular, Bootstrap and Dart
- AtScript and TypeScript
- Other JavaScript frameworks and libraries (React, Ionic, Ember, Aurelia...)
Software Development Capabilities
- Components and Modules
- Single-threaded ‘blocking’ problem
- Reduce use of ‘function’ keyword
Traceur
- JavaScript.next-to-JavaScript-of-today converter
- Converting offline
- Online Read-Eval-Print-Loop for exploring ES6
- Impact on performance
Sugar Syntax
- Make a language easier to understand and more readable
- Some features of ES6 are not really new
- All methods are still added to the prototype
ES6 Language Features
- Number and Maths Improvements
- Maps, Sets and Weak Maps
- Iterators and for-of loops
- Object Literal Enhancements
- Arrow Functions
- Let and Const for Block Scoped Binding
- Default and Rest Parameters
- Template Literals
- Promises
Classes
- Property Method Assignment
- Object Initializer Shorthand
- Class definition and name
- Class prototype
- Instance property and class property
Shadow DOM
- shadow root and shadow host
Module syntax
- Named exports and Default exports
- Importing modules
ECMAScript language types
- Undefined, Null, Boolean, String, Symbol, Number, and Object
Testing
- Overview of current JavaScript testing- Jasmine
NodeJS
- Configuring Node for non-browser JavaScript
- Node packages
- Running scripts