Online
Classroom

Advanced JavaScript for Front-end Developers

Part of our "Web and Mobile" courses

2 days

thumb image

Course Overview

This richly layered and comprehensive course provides the perfect framework in which to learn all about using JavaScript/ECMAScript in Front-end Development. The course especially prepares student to use frameworks such as Angular, React, Vue and Svelte.

Course Prerequisites

It is expected that delegates will be familiar with the fundamentals of JavaScript. The Introduction to Modern JavaScript is the perfect preparation for this course.

Outline

The main focus of this course is to work with experienced developers to significantly raise their level of knowledge and understanding of JavaScript/ECMAScript, JavaScript frameworks and libraries

Introduction and Recap

Recap key aspects of JavaScript/ECMAScript

  • Recap of JavaScript/ECMAScript/ES
  • List the various versions and their support
  • Discuss equality (difference between == and ===)
  • Discuss advantages of immutable values
  • Review different string literals (template strings)
  • Understand variable hoisting
  • Discuss the disadvantages of using statements over expressions

Recap and More on Object Literals

  • Recap Object literals and defining properties and methods
  • Define accessors (aka getters/setters)
  • Using shorthand property names
  • Appreciate the Destructuring assignment for objects
  • Use destructuring to when using immutable objects
  • Using constructors

Dealing with null and undefined

  • understand the difference between null and undefined
  • Problems of nullish (null/undefined)
  • Protecting against nullish values
  • Using logical operators (&& and ||)
  • Appreciate Conditional Chaining (es2020)
  • Appreciate Nullish coalescing operator (es2020)

Front-end Development (tools)

  • Introduce Node.js (for front-end development)
  • Setting up a new project
  • Managing dependencies using npm and/or yarn

Modules

  • Introducing modules (ES Modules (ESM), CommonJS, …)
  • Defining and using modules (exporting/importing)
  • Using ESM in the browser

Babel

  • Introduce Babel
  • Setting up a babel project
  • Appreciate babel plugins and presets
  • Use and configure the preset-env
  • Introduce Browserlist
  • Defining browserlist queries to define your target browsers

Webpack

  • Introduce webpack
  • Using webpack
  • Understand webpack's architecture
  • Understand and define entry points and outputs
  • Using and configuring the development-server
  • Discuss tree shaking
  • Using loaders
  • Using plugins
  • Introduce asset modules (and how they replace certain loaders)
  • Configuring Webpack for CSS and SASS
  • Using various optimisations

Functional JavaScript

  • Principles of Functional Programming
  • Functional Programming in JavaScript
  • Dealing with state and mutability
  • Recap Functions as values
  • Recap Higher-order functions
  • Recap Lambda/arrow functions
  • Using clojures
  • Use Function members (this,apply/call, arguments)
  • partially applied functions
  • Currying in JavaScript
  • Combining functions using the Pipeline operator (|>)
  • Using recursion
  • Functional Libraries

Classes

  • Explain the concept of Prototypical inheritance
  • Defining ES classes
  • Defining methods
  • Defining constructor functions
  • Overriding methods and constructors
  • Defining fields (using ES2020) = Defining private fields
  • Adding static members
  • Class inheritance

Key APIs

  • Using Promise for asynchronous code
  • Defining promises
  • Handling Promise errors
  • Combining promises
  • Using async/await
  • Using XHR to interact with servers
  • Using the fetch API
  • Using the history API

Testing / BDD

  • Introduce the importance of testing
  • Discuss different testing techniques (unit, bdd, e2e)
  • Introduce Jasmine
  • Setup up Jasmine
  • Writing Suites and Specs
  • Writing Asynchronous code
  • Mocking and Stubbing using Spies
  • Mocking time

Private Events

Is your team in need of an Advanced JavaScript for Front-end Developers course?

Send us a message, and we'll get in touch, without any obligation.

languages:
enfrnl

Upcoming Public Events

Currently we have no public courses planned for Advanced JavaScript for Front-end Developers

This Advanced JavaScript for Front-end Developers course looks very interesting, I do however have a question