Advanced JavaScript

From Training Material
Jump to navigation Jump to search


Advanced JavaScript Training Materials

Advanced JS (2 days)

Expressive JavaScript

  • The Flexibility of JavaScript
  • JavaScript as a Loosely Typed Language
  • Functions as First-Class Objects
  • Object Mutability

Functions In Depth

  • Function Objects
  • Function Literal
  • Function Invocation Patterns
  • Augmenting Types
  • Recursion & Closures
  • Functions as Callbacks
  • Function Currying & Memorization

Closures In Depth

  • How Closures Work
  • Private Variables, Callbacks and Timers Binding Function Contexts
  • Overriding Function Behavior

Object Orientation With Prototypes

  • Object Instantiation
  • Constructors
  • Inheritance and Prototype Chain
  • Extending Object
  • Extending Number
  • Instantiation Issues
  • Wring class-like code

JavaScript Gotchas

  • Global Variables
  • Scope
  • Semicolon Insertion
  • Type Coercion

Modular JavaScript

  • Techniques for modularizing JavaScript code

Debugging Techniques

  • Using “console”
  • Developer tools in the browser
  • Using breakpoints
  • Advanced breakpoints

JavaScript Design Patterns

  • Common Design Pattern Implementation Module Pattern
  • Revealing Module Pattern
  • Observer Pattern
  • Factory Pattern
  • Decorator Pattern
  • Strategy Pattern
  • PubSub Implementation

Introduction to Unit Testing in JavaScript

  • Overview of Unit Testing Frameworks
  • Using Jasmine for Unit Testing
  • Builtin matchers
  • Covering Before and After
  • Using Spies for Mocking

Performance Optimization

  • Profiling JavaScript Applications
  • Profiling in Chrome
  • Profiling in Node.js
  • Understanding Performance Bottlenecks
  • Techniques for improving Performance

ES6

  • New Features in ES6 Overview
  • Using Transpilers (BABEL, Typescript)
  • Array Functions
  • Variable Declarations (let, const)
  • Object and Array deconstruction
  • Creating Classes & Inheritance
  • Generators
  • Accessor Methods
  • Asynchronous programming using Promises
  • Modularity in ES6