JavaScript for Developers

JavaScript Web Programming languages

As Douglas Crockford once said, JavaScript is the world's most misunderstood programming language. It is also one of the world's most popular programming languages and one of the cornerstones of a modern web application development. With web clients becoming thicker and more complex, it is no longer easy to get away with sloppy, ad-hoc JavaScript programming style. In this advanced JavaScript hands-on course you will learn how to write good code (by employing its good features and avoiding quirks and common pitfalls).

LEARN HOW TO

  • Take advantage of JavaScript's functional and dynamic nature Understand lexical scope and closure
  • Unit test JavaScript code
  • Write object-oriented code
  • Avoid (few) JavaScript quirks and common pitfalls
  • Apply asynchronous and event-driven patterns
  • Use behaviors and stay unobtrusive

PROGRAMME

Day 1

  • Introduction to unit testing (Jasmine)
  • JSLint (will hurt your feelings)
  • Objects
    • object literals
    • default & guard operators
    • updating properties & property attributes (eval/firebug gotcha)
    • prototype
    • property enumeration
    • delete operator
  • Functions
    • Function object
    • declaration hoisting
    • literal
    • arguments
    • invocation (4 ways)
    • return
    • recursion
  • Arrays
    • array literals
    • length & delete
    • for vs. for in
    • arrays vs. associative arrays
    • augmenting array prototype
    • multidimensional arrays

Day 2:

  • Functions
    • lexical scope
    • closure
    • revealing module pattern
    • bind
    • are first-class
    • a few functional programming patterns (composition, partial application, memoization)
    • throttling
  • Unit testing asynchronous code
  • OOP
    • inheritance (pseudoclassical, prototypal, functional)
    • mixins
    • overriding & super()

IS THIS COURSE FOR YOU?
This Advanced JavaScript course is designed for experienced Web Developers designing, creating and maintaining rich web applications. It will help you tackle the complexity and challenges of the modern Web Development.

COURSE PREREQUISITES
To get the most out of the course, you should have hands-on experience with JavaScript and be familiar with HTML, DOM, CSS and Ajax. Prior exposure to a JavaScript/Ajax framework (like JQuery which is used in a few exercises) will be helpful but is not essential.

COURSE LABS & EXERCISES
This Advanced JavaScript course is a combination of lectures, discussions and practical exercises.

COMPUTER SETUP
You need to bring your own laptop with the following installed:

  • Git client
  • NodeJS 8
  • Google Chrome (or any other modern browser) Visual Studio Code (or any other text-editor/IDE)This is a BYOD (bring your own device) workshop.

Tid

09:00-16:15

Emner

Basic syntax

Scoping rules

Built-in types

Functions

Closures

Objects

Arrays

How to build abstractions

Asynchronous JavaScript

Debugging

The ecosystem

Tools of the trade