JavaScript Course Outline

JavaScript Fundamentals

  1. Types in JavaScript
  2. Truthy vs. Falsey
  3. Event Loop & Asynchronous JavaScript – Learn about async programming
  4. concepts and why they matter.
  5. Object Creation Patterns

Functions

  1. Anonymous Functions
  2. Scoping
  3. Function Declarations versus Function Expressions
  4. Functions as Data

Functions As Data

  1. Software Architecture best practices
    • Loose Coupling & Maintainability
    • Avoid collisions
    • SOLID principles
    • DRY
  2. Namespacing
  3. IIFE (Immediately Invoked Function Expressions)
  4. Closures
  5. Modules
    • The module pattern
    • Principles in modularity
    • Interfaces
  6. Strict Mode
  7. Inheritance in JavaScript
  8. Promises
  9. Prototypes

Design Patterns & Architecture

  1. Dependency Injection
  2. MVC vs. MVVM
  3. Prototype Pattern
  4. Revealing Module
  5. Pattern
  6. What are design patterns?

Functional Programming

  1. Imperative vs. Functional Programming
  2. Partial Applications
  3. Higher Order Functions
  4. Chaining
  5. Currying
  6. Map/Reduce
  7. Function Composition
  8. Immutability
  9. Mixins
  10. Real world recursion

FUnit Testing

  1. Testing using Karma
  2. Continuous Integration with Travis
  3. Test Driven Development
  4. Test Frameworks(Jasmine, Mocha, QUnit)
  5. E2E Testing using Nightwatch