Table of Contents
Browser Support & TranspilersKyle assuages developer's fears of not supporting their users when new features are implemented by introducing transpilers as a standard for the language.
Course OverviewKyle defines what the "recent parts" means as part of the title, and gives a roadmap for what the course will contain.
Template StringsKyle introduces a more declarative way of introducing variables to strings than the default string concatenation.
Tagged TemplatesKyle introduces tagged literals, gives a simple example of when they could be useful, and describes where to find prewritten libraries to help in your code.
Applying Tagged TemplatesKyle demonstrates an application for tagged literals that logs objects in the console.
Tagged Template ExerciseStudents are instructed to utilize both template strings, and tagged templates in a statement that is logged in the console.
Tagged Template SolutionKyle live codes the solution to the exercise.
Padding & TrimmingKyle introduces string padding, and string trimming.
DestructuringKyle breaks down destructuring, and gives a tangable example of how it makes the code more declarative.
Refactoring Code Using DestructuringKyle demonstrates how to implement the previous conversation about destructuring.
Spread Operator & Declaring Destructured ArraysKyle introduces the spread operator to the example, and then goes on to explain how the example without destructuring differs in behavior to the example with destructuring.
Declaration & AssignmentKyle defined the difference between declaration and assignment, and explains both in the context of destructuring.
Comma SeparationKyle demonstrates how to use commas to omit a value that is returned when destructuring.
Parameter ArraysKyle demonstrates how to apply destructuring when the function signature contains an array, and applies the concept of gracefully falling back when what was returned is null.
Nested Array DestructuringKyle demonstrates how to to access a returned data structure's values when it is known that there are nested arrays.
Object DestructuringKyle demonstrates how to assign default parameters, and utilize the spread operator.
Object Default AssignmentKyle demonstrates how to ensure object destructuring falls back gracefully when the values are null.
Nested Object DestructuringKyle demonstrates how to access a returned data structure's values when it is known that there are objects.
Default Assignment Q&AA question is asked about the proper way to give a default assignment.
Parameter ObjectsKyle demonstrates how to apply destructuring when the function signature contains an object.
Nested Object & Array DestructuringKyle demonstrates how to access a returned data structure's values when it is known that there are both objects and arrrays.
Named ArgumentsKyle demonstrates a method of improving the readability of code by naming arguments.
Destructuring & RestructuringKyle introduces a method to mix methods at a call site.
Destructuring ExerciseStudents are instructed to destructure an AJAX response, then restructure the parameters.
Destructuring SolutionKyle live codes the solution to the exercise.
find, findIndex, & includesKyle introduces new array methods .find, findIndex, and .includes that search an array.
flat & flatMapKyle introduces new array methods .flat and .flatmap that augment nested arrays.
Iterators & Generators
IteratorsKyle defines what an iterator is, and walks through an example where an iterator is instantialized, and an iterator result is produced.
Declarative IteratorsKyle introduces the new built in key word "of" and spread operator as declarative methods to iterate over data structures.
Data Structure without IteratorsKyle discusses the issues that arise when attempting to iterate over data structures such as an object, and demonstrates a strategy for overcoming this.
GeneratorsKyle demonstrates how to use generators to iterate over data structures without iterable attributes.
Iterator & Generator ExerciseStudents are instructed to implement an iterator and generator to log lucky numbers.
Iterator & Generator SolutionKyle live codes the solution to the exercise.
Look Ahead & BehindKyle first reviews look aheads, then introduces the brand-new implementation of look behinds.
Named Capture GroupsKyle introduces a method to organize regular expressions and make them more human readable.
dotall ModeKyle demonstrates how to utilize the dotall mode to select elements of a string.
Regex ExerciseStudents are instructed to utilize all three of the features learned in the last few sections, as well as earlier lessons to log selected portions of a poem provided by Kyle.
Regex SolutionKyle live codes the solution to the exercise.
Async FunctionsKyle gives context to what was done previous to the availability of the sync-async pattern, then goes on to explain how the async function accomplishes essentially what the async function accomplished.
Async Await ExerciseStudents are instructed to construct an async function where files are given to the function by a mock AJAX call, and are logged in the order that they are received.
Async Await SolutionKyle live codes the solution to the exercise, and demonstrates a common mistake that students are likely to make.
Async IterationKyle goes into further detail on why await cannot be used in a regular function, and offers up a library that fills the gap in the language.
Async Function ProblemsKyle exposes the issues with async functions, including that it only accepts true promises, and a scheduling issue that causes starvation.
Async Generators with yieldKyle introduces a new function type as of ES2018 that allows for yield and await in the same function.
Async Generators IterationKyle explains why async generators are the last piece in the quadrant of async generators.