Warren Shea

Warren Shea’s Notes for ES6 for Everyone (Online Course)

https://courses.wesbos.com/ | https://es6.io/
Version: 20171219 | Status: Mostly Complete


Legend

#REFERENCE = For reference
#TODO = Need to revisit / clarify
#FILTER = Reference for useful filters
#BESTPRACTICE = Best Practice

Table of Contents

Module 01: New Variables - Creation, Updating and Scoping

Module 01.01: var Scoping refresh

Module 01.02: let VS const

Module 01.03: let and const in Real World

Module 01.04: Temporal Dead Zone

Module 01.05: Is var Dead? What should I use?

Module 02: Function Improvements: Arrows and Default Arguments

Module 02.06: Arrow Functions Introduction

Module 02.07: More Arrow Function Examples

Module 02.08: Arrow Functions and this

Module 02.09: Default Function Arguments

Module 02.10: When NOT to use the Arrow Function

Module 02.11: Arrow Functions Exercises

Module 03: Template Strings

Module 03.12: Template String Introduction

Module 03.13: Creating HTML fragments with Template Literals

Module 03.14: Tagged Template Literals/Strings

Module 03.15: Tagged Templates Exercise

Module 03.16: Sanitizing User Data with Tagged Templates

Module 04: Additional String Improvements

Module 04.17: New String Methods

Module 05: Destructuring

Module 05.18: Destructuring Objects

Module 05.19: Destructing Arrays

Module 05.20: Swapping Variables with Destructuring

Module 05.21: Destructuring Functions - Multiple returns and named defaults

Module 06: Iterables & Looping

Module 06.22: The for of loop

Module 06.23: The for of Loop in Action

Module 06.24: Using for of with Objects

Module 07: An Array of Array Improvements

Module 07.25: Array.from() and Array.of()

Module 07.25: Array.find() and Array.findIndex()

Module 07.26: Array.some() and Array.every()

Module 08: Say Hello to …Spread and …Rest

Module 08.28: Spread Operator Introduction

Module 08.29: Spread Exercise

Module 08.30: More Spread Examples

Module 08.31: Spreading into a function

Module 08.32: The …Rest param in Functions and destructuring

Module 09: Object Literal Upgrades

Module 09.33: Object Literal Upgrades

Module 10: Promises

Module 10.34: Promises

Module 10.35: Building your own Promises

Module 10.36: Chaining Promises + Flow Control

Module 10.37: Working with Multiple Promises

Module 11: Symbols

Module 11.38: All About Symbols

Module 12: Code Quality with ESLint

Module 12.39: Getting Started with ESLint

Module 12.40: Airbnb ESLint Settings

Module 12.41: Line and File Specific Settings

Module 12.42: ESLint Plugins

Module 12.43: ESLint inside Atom and Sublime Text

Module 12.44: Only Allow ESLint Passing Code into your git repos

Module 13: JavaScript Modules and Using npm

Module 13.45: JavaScript Modules and WebPack 2 Tooling Setup

Module 13.46: Creating your own Modules

Module 13.47: More ES6 Module Practice

Module 14: ES6 Tooling

Module 14.48: Tool-Free Modules with SystemJS (+bonus BrowserSync setup)

Module 14.49: All About Babel + npm scripts

Module 14.50: Polyfilling ES6 for Older Browsers

Module 15: Classes

Module 15.51: Prototypal Inheritance Review

Module 15.52: Say Hello to Classes

Module 15.53: Extending Classes and using super()

Module 15.54: Extending Arrays with Classes for Custom Collections

Module 16: Generators

Module 16.55: Introducing Generators

Module 16.56: Using Generators for Ajax Flow Control

Module 16.57: Looping Generators with for of

Module 17: Proxies

Module 17.58: What are Proxies?

Module 17.59: Another Proxy Example

Module 17.60: Using Proxies to combat silly errors

Module 18: Sets and WeakSets

Module 18.61: Sets

Module 18.62: Understanding Sets with Brunch

Module 18.63: WeakSets

Module 19: Map and Weak Map

Module 19.64: Maps

Module 19.65: Map Metadata with DOM Node Keys

Module 19.66: WeakMap and Garbage Collection

Module 20: Async + Await Flow Control

Module 20.67: Async Await - Native Promises Review

Module 20.68: Async Await - Custom Promises Review

Module 20.69: All About Async + Await

Module 20.70: Async + Await Error Handling

Module 20.71: Waiting on Multiple Promises

Module 20.72: Promisifying Callback Based Functions

Module 21: ES7, ES8, + Beyond

Module 21.73: Class Properties

Module 21.74: padStart and padEnd

Module 21.75: ES7 Exponential Operator

Module 21.76: Function Arguments Trailing Comma

Module 21.77: Object.entries() and Object.values()