Software Development

JavaScript

Overview

Modern Web Apps are programs that are experienced in a browser. We need to use a mix of HTML5, Ajax and advanced JavaScript techniques and libraries to get us there.

Node, Angular, React, React Native, Vue, and similar frameworks demand a deep understanding of JavaScript for developers to be successful in them. This 5-day course is specifically designed to build the foundations needed for students to code in them.

This interesting and intensely practical hands-on workshop is designed to equip you to write JavaScript in a way that is robust, scalable, dynamic, elegant, and safe. We focus on modern techniques and practices that will stretch even experienced JavaScript developers but we keep them within the grasp of devs who may consider themselves JavaScript novices.

Who Should Take This Course

Audience

This course is suitable for: Developers of all skill levels who need to learn modern, advanced JavaScript quickly.

Prerequisites

Basic understanding of HTML and how the web works. Programming experience in some language.

Course Outline

JavaScript

Intro to JavaScript

  • Just enough JavaScript to write a (if, while, for, comments)

Intro to NodeJS

  • How to write and run a Node script

Debugging JavaScript

  • Browser-based tools
  • Formatting the console
  • Why you should never use alert()

Tooling

  • Why have tooling?
  • npm and yarn
  • eslint and jslint
  • transpilers
  • webpack

Unit testing JavaScript

  • Writing and running unit tests
  • TDD/BDD
  • Jest

Operators

  • Arithmetic
  • Auto-operators
  • Logical operators
  • Boolean logic
  • Short-circuiting

Functional JavaScript

  • Variadicity
  • Pure impure functions
  • Function statements
  • Function expressions
  • Arrow functions
  • Rest operator
  • Default parameters

Object-oriented JavaScript

  • Functional JavaScript object-oriented JavaScript – Which should I choose?
  • How prototypal inheritance is different to traditional inheritance
  • Classes
  • Constructors
  • get() and set()
  • Classless objects
  • Property shorthands

Understanding execution context

  • How invocation changes “this”
  • call(), apply(), bind()
  • How arrow functions affect context

Variables

  • let, var, and const — When to use each
  • How hoisting works
  • How to control hoisting
  • Destructuring
  • Easy string templates with `${}`

Arrays in JavaScript

  • Typed arrays
  • Iterating arrays
  • for-in vs. for-of
  • The spread operator
  • How to spread arrays
  • Array.prototype.*
  • forEach()
  • reduce()
  • map()
  • filter()
  • some() and every()

Modules with JavaScript

  • How to get it supported in all browsers
  • requireJS
  • import
  • export vs export default
  • IIFEs

Asynchronous JavaScript

  • Multithreading
  • How the event loop works
  • Promises
  • Async and await

Modern JavaScript with ES2015-present and beyond

  • TC39 and how JavaScript evolves
  • The newest capabilities of JS
  • Experimental features
  • What’s coming in the future?

Working with the DOM

  • What is the DOM?
  • Querying the DOM
  • Wiring up raw event handlers
  • Altering the DOM for dynamic views
  • Why we’d use Angular, React, Vue

Ajax

  • Making RESTful calls
  • stringify() and parse()
  • XMLHttpRequest
  • The fetch API
Search UMBC Training Centers