Table of Contents
Local Execution ContextNot the same as defining a function, Will examines the process of invoking a function, which includes creating a local execution context.
Call StackWill introduces the concept of the call stack, which keeps track of its place in a script that calls multiple functions.
Pure FunctionsWill discusses a characteristic of functional programming called pure functions.
High Order FunctionsWith a brief exercise, Will reviews high order functions by examining the programming concept of Don't Repeat Yourself (DRY), which is a principle of software development aimed at reducing code repetition by making the code more re-usable.
Callbacks and Higher Order Functions
Setting Up Pair ProgrammingAsking students to self-evaluate their programming skills, Will introduces pair programming in the course.
Introducing Pair ProgrammingWill introduces the concept of pair programming, which is an agile software development technique in which two programmers work together at one workstation
Callbacks and Higher-Order Functions ExercisesIn this exercise, students work in pair programming to better understand Callbacks and Higher-Order Functions.
Paramaterizing FunctionsWill walks through generalizing functions by parameterizing functions to apply the data when calling the function.
Q&A: Const and LetWill takes questions from students about Const and Let declarations.
Reviewing Generalizing FunctionWill shows how to a function can carry multiple arguments.
Deconstructing Generalize FunctionReinforcing the material, Will walks through a generalized function with assistance from students.
Q&A: Passing FunctionsAfter taking questions from students, Will has the students work through example code in pair programming.
Callback vs Higher-order FunctionsAfter explaining the differences between callback function and a higher-order function, Will reviews their benefits: simplify the code, keep code DRY, and allow the running of asynchronous code.
Introducing ClosureWill reviews closures. Closures give access to an outer function’s scope from an inner function.
Deconstructing ExampleWill walks through a closure code example with the students.
Q&A and Pair ProgrammingAfter taking questions from students, Will prompts the students to work in pair programming to work on closure examples.
Closure Exercise, Part 1Will walks through an example of calling a function in the same scope as it was defined.
Closure Exercise, Part 2Continuing to build upon the closure example, Will walks through a code example showing how to run a function outside of where it was defined by returning the function and assigning it a new variable.
Closure Exercise, Part 3Will demonstrates that calling a function outside of where it was created also brings surrounding data of where it was defined as well.
Q&A: Lexical ScopeWill takes questions from students about closure including defining lexical scope, which is the available data when the function was defined.
Q&A: Garbage CollectionWill takes more questions from students how to do garbage collection for lexical scoped variables.
Closure Exercise, Part 4Expanding on the closure example, Will demonstrates results of a function in a new execution context that takes place alongside the previous closure function.
Q&A: Shared ReferencesWill takes questions from students. Then Will prompts the students to continue with pair programming exercises.
Browser API Q&AWill takes questions from students about Web Browser API. Then Will prompts the students to continue with pair programming exercises.
Resetting Pair ProgrammingWith new criteria, Will works with students to set them up into pairs to work on exercises. - bit.ly/asyncjshp
Browser API Q&A, Part 2Will takes a question from a student about running console.log() within setTimeout.
Callback Queue & Event LoopWill reviews the Callback Queue and Event Loop that concern the execution of asynchronously delayed code.
Asynchronous Q&A and Pair ProgrammingWill takes questions from students before setting them off on pair programming challenges.
XMLHttpRequestWill walks through an asynchronous code example featuring Web browser API XMLHttpRequest.
XMLHttpRequest Q&AIn taking questions from students, Will leads into a demonstration "callback hell" and how promises alleviate that problem.
XMLHttpRequest CorrectionWill corrects his mentioning of XMLHttpRequest.
OOP Exercise, Part 1Will works through the OPP code example to show encapsulation, which is the binding together data and functions that manipulate that data.
OOP Exercise, Part 2To declare an object Will uses dot notation, which is a syntax for accessing properties. Then Will reviews Object.create, which is a method for creating a new object.
OOP Exercise, Part 3To modularize OOP code example using DRY methods, Will walks through a function to generate objects.
OOP Exercise Q&A and Pair ProgrammingAfter working through generating OOP code example, Will works with students to determine potential problems. Then Will initiates another round of pair programming challenges. - csbin.io/oop
__proto__Will introduces the concept of __proto__, which allows for the creation of objects with shared functionality.
OOP Exercise, Part 4Will demonstrates the prototype chain bond between objects.
__proto__ Q&A and Pair Programming, Part 2After taking questions from students about prototypical nature in objects, Will starts another round of pair programming challenges.
new operatorWill introduces the new operator, which creates an instance of a user-defined object type.
new operator Q&AWill takes questions from students to clarify and explore more about new operator.
Object.prototypeTo automate and standardize OOP, Will introduces coding with the Object.prototype.
OOP Exercise, Part 5Will walks through streamlining OOP code example by implementing Object.prototype property, shared methods separately from the object constructor.
Object.prototype Q&AWill takes a question from a student about the difference between __proto and prototype.
OOP Exercise, Part 6With help from the students, Will demonstrates OOP approach using syntactic sugar approach and discusses the benefits.
Class Syntactic Sugar Q&AAfter taking questions from students, Will starts another round of pair programming.