Frontend Masters - Deep JavaScript Foundations

Category: Business


Posted on 2019-01-05, by fubber.

Description


Frontend Masters - Deep JavaScript Foundations



General:

Join Kyle Simpson -- author of the popular �You Don�t Know JavaScript� book series -- as he reveals the deep foundations of JavaScript. You'll learn about object wrappers, coercion, scope, closure, types, prototype system, ES6 features, == vs === and more. Understand deeply how the JavaScript engine looks for variables in function and block scope (var, let and const). Learn which ES6 features can help or hurt your coding and which new features should be used with caution. Also why coercion is one of the overlooked keys to using JavaScript more effectively. With this course, you'll see how gaining a deeper understanding of JavaScript will make you a better communicator and programmer! NOTE: The course material has been re-arranged. The first challenge on Coercion has been moved to the end of the course.

This course and others like it are available as part of our Frontend Masters video subscription.
Published: July 18, 2017
Table of Contents
Deep Foundations of Advanced JavaScript v2

Introduction
00:00:00 - 00:08:31
Introduction
Kyle Simpson introduces Deep Foundations of Advanced JavaScript course. - https://frontendmasters.com/assets/kyle-simpson/js/deep-js-foundations.zip

Scope

Scopes and Closures Introduction
00:08:32 - 00:11:59
Scopes and Closures Introduction
Kyle reviews the topics that make up the second core foundation of JavaScript: Lexical scope, Nested Scope, Hoisting, Closure
Understanding Scope
00:12:00 - 00:30:08
Understanding Scope
Kyle introduces scope as the set of rules for storing variables in some location and for finding those variables at a later time. Kyle then uses the concept of scope to help understand the way the JavaScript compiler works.
Compiling Function Scope
00:30:09 - 00:40:49
Compiling Function Scope
As the JavaScript compiler enters a function, it will begin looking for declaration inside that scope and recursively process them. Once all scopes have been compiled, the execution phase can begin. Kyle also answers questions from students.
Execution of Function Code
00:40:50 - 00:55:49
Execution of Function Code
As the execution phase continues within the function scope, the same Left-Hand Side (LHS) and Right-Hand Side (RHS) operations are applied. Things get a little interesting with undeclared variables. They are automatically declared in the global scope.
Partner Up for Scope
00:55:50 - 00:56:54
Partner Up for Scope
In this challenge, students pair up with a colleague and explain scoping examples in JavaScript to each other.
Partner Up for Scope Q&A
00:56:55 - 00:58:34
Partner Up for Scope Q&A
Kyle answers students' questions from the scoping exericse.
Strict Mode
00:58:35 - 01:08:52
Strict Mode
Kyle recommends using Strict Mode, which is done by putting "use strict" before any other statemnts.
Scope and Execution Example
01:08:53 - 01:23:08
Scope and Execution Example
Kyle walks the audience through another example of how the JavaScript compiler will declare and execute variables and functions. This example includes a nested function which creates a nested scope.
Scope Review
01:23:09 - 01:29:11
Scope Review
Continuing to help explain Lexical Scope, Kyle quizzes the students.
Named Function Expressions
01:29:12 - 01:43:13
Named Function Expressions
A function declaration occurs when the function keyword is the first word of the statement. Functions assigned to a variable become function expressions. Kyle explains these difference while also describing the benefits of function expressions. Kyle also answers questions from students.
Lexical Scope
01:43:14 - 01:49:17
Lexical Scope
Kyle reviews Lexical Scope and Dynamic Scope, which are two models of scope programming languages.
Function Scoping
01:49:18 - 01:51:43
Function Scoping
Kyle discusses function scoping as a method to use a function to create scope to protect variables from collision or access. To keep the function name from potentially causing a collision, Kyle creates an anonymous function expression. - http://benalman.com/news/2010/11/immediately-invoked-function-expression/
IIFE Pattern
01:51:44 - 02:01:10
IIFE Pattern
To create an object in their scope without polluting the outer scope, Kyle demonstrates the Immediately Invoked Function Expressions (IIFE) Pattern, a technique used to hide scope involving wrapping code inside a function that is immediately called. Kyle answers questions from students.
Block Scoping
02:01:11 - 02:09:07
Block Scoping
Kyle reviews the ES6 "let" keyword that will implicitly create a block-level scope and add declarations to that scope rather than the enclosing function. The most common use-case for the let keyword is for loops.
Problems with let Keyword
02:09:08 - 02:16:13
Problems with let Keyword
Kyle describes a few issues he has with the let keyword. Some of his issues are stylistic, but others are related to common variable functionality like hoisting.
Const Keyword
02:16:14 - 02:22:23
Const Keyword
Kyle introduces const, which also creates a block-scoped variable, but whose value is fixed or constant. Any attempt to change that value at a later time results in an error.
Challenge 2: Scoping
02:22:24 - 02:26:00
Challenge 2: Scoping
Before delivering the next Challenge, Kyle takes a moment to review scope material discussed so far in the course. In this challenge, students take what they have learned about naming function expressions and using block scope and update the simple application code.
Challenge 2: Solution
02:26:01 - 02:35:39
Challenge 2: Solution
Kyle walks through the solution to Challenge 2 and takes questions from students.
Hoisting
02:35:40 - 02:52:01
Hoisting
Kyle explains "hoisting," which is the moving of declarations to the top of the scope block during the compiling phase. Hoisting applies to both variable declarations and functions. Kyle spends some time explaining why hoisting exists in JavaScript and the problems surrounding it.
Challenge 3: Hoisting
02:52:02 - 02:52:35
Challenge 3: Hoisting
In this challenge, students use hoisting to make their code more legible.
Challenge 3: Solution
02:52:36 - 02:57:15
Challenge 3: Solution
Kyle walks through the solution to Challenge 3 and takes questions from students.

Closure

Closure Introduction
02:57:16 - 03:05:40
Closure Introduction
Kyle introduces closures, which are when a function remembers its lexical scope even when the function is executed outside that lexical scope. Kyle shows examples using some common JavaScript structures like setTimeout and click events. He also demonstrates closure in shared scopes and nested scopes.
Closure Examples
03:05:41 - 03:12:51
Closure Examples
Kyle demonstrates a few additional closure examples inside loops and the misconceptions that arise. He also compares closure to traditional object references to explain the difference.
Challenge 4: Closure
03:12:52 - 03:14:11
Challenge 4: Closure
In this challenge, students use closure to expand an entry of text.
Challenge 4: Solution
03:14:12 - 03:17:46
Challenge 4: Solution
Kyle walks through the solution to Challenge 4.
Module Patterns
03:17:47 - 03:37:49
Module Patterns
Kyle reviews modules, which let you define private implementation details that are invisible to the outside world. Kyle reviews different module patterns: classic, modern, and ES6 module patterns.
Closure Review
03:37:50 - 03:43:44
Closure Review
In reviewing Closure, Kyle quizzes the students.
Challenge 5: Module, Part 1
03:43:45 - 03:44:35
Challenge 5: Module, Part 1
In this challenge, students create module instance with a public API.
Challenge 5: Solution, Part 1
03:44:36 - 03:48:30
Challenge 5: Solution, Part 1
Kyle walks through the solution to Challenge 5, Part 1.
Challenge 5: Module, Part 2
03:48:31 - 03:52:44
Challenge 5: Module, Part 2
Kyle introduces the second part of the challenge, where students clean up the UI and data operations.
Challenge 5: Solution, Part 2
03:52:45 - 04:11:03
Challenge 5: Solution, Part 2
Kyle walks through the solution to Challenge 5, Part 2 and takes questions from students.
Challenge 5: Module, Part 3
04:11:04 - 04:12:43
Challenge 5: Module, Part 3
Kyle introduces the third part of the challenge, where students clean up the UI and data operations.
Challenge 5: Solution, Part 3
04:12:44 - 04:19:17
Challenge 5: Solution, Part 3
Kyle walks through the solution to Challenge 5, Part 2 and takes questions from students.

Object-Orienting

Object-Oriented Introduction
04:19:18 - 04:23:04
Object-Oriented Introduction
Kyle introduces the next core foundation to cover in the course, Object-Orienting: this, Prototypes, class {}, and "Inheritfance" vs. "Behavior Delegation."
this
04:23:05 - 04:24:20
this
Kyle reviews the "this" function. Every function, while it's executing, has a reference to its current execution context called "this." The "this" reference is JavaScript's version of dynamic scope. Kyle explains the "this" keyword's relationship to the call site of the function.
Binding Confusion
04:24:21 - 04:29:07
Binding Confusion
Kyle demonstrates that attempting to force the "this" keyword into a different lexical scope can lead to some binding confusion.
Explicit Binding
04:29:08 - 04:37:04
Explicit Binding
Kyle explains explicit bindings and also detours into a discussion about a technique he calls "hard binding." The explicit binding rule allows developers to use the "call" method and pass an explicit reference for the "this" binding. Explicit bindings can also be set using the "apply" method. Hard binding is available in the form of the "bind" method.
The new Keyword
04:37:05 - 04:45:00
The new Keyword
Kyle explains the functionality of the "new" keyword and the effects it has when placed in front of a function call. JavaScript does not have classes and the "new" keyword does not do any instantiation.
this Review
04:45:01 - 04:48:12
this Review
In reviewing "this," Kyle quizzes the students.
Challenge 6: this
04:48:13 - 04:48:33
Challenge 6: this
In this challenge, clean up hard-coded lexical references by using what has been learned about "this."
Challenge 6: Solution
04:48:34 - 04:50:09
Challenge 6: Solution
Kyle walks through the solution to Challenge 6.

Prototypes

Prototypes Introduction
04:50:10 - 04:55:45
Prototypes Introduction
In JavaScript, every object is built by a constructor function and does not mean classes are being instantiated. When a constructor function is called, a new object is created with a link to the object's prototype.
Explaining Prototypes, Part 1
04:55:46 - 05:07:53
Explaining Prototypes, Part 1
Using a code example from the slides, Kyle spends some time diagramming the relationship between an object and its prototype.
Explaining Prototypes, Part 2
05:07:54 - 05:14:10
Explaining Prototypes, Part 2
Kyle explains the relationship between __proto__ (dunder-proto) and the prototype keyword and how both reference the underlining prototype.
Prototype Linkages
05:14:11 - 05:20:26
Prototype Linkages
Prototype linkages allow delegation to other objects to hand method calls or property references. This process allows additional objects to be created from a prototype with duplication of the function code. This binding is beneficial as long as developers don't break any rules.
Prototype: Objects Linked
05:20:27 - 05:23:43
Prototype: Objects Linked
Prototypes in JavaScript can be linked and share a parent-child relationship similar to a subclass and superclass. This relationship is beneficial when extending a prototype to add additional methods. However, there are issues with constructor references.
Linked Prototype Diagram
05:23:44 - 05:24:44
Linked Prototype Diagram
Kyle revisits the prototype diagram he drew on the whiteboard earlier. This time, however, he shows a more sophisticated version outlining the relationship of the two linked prototypes.
Prototype Review
05:24:45 - 05:26:15
Prototype Review
In reviewing Prototype, Kyle quizzes the students.
Challenge 7: Prototype
05:26:16 - 05:26:52
Challenge 7: Prototype
In this challenge, students convert a module factory function to prototype-style constructor function.
Challenge 7: Solution
05:26:53 - 05:33:30
Challenge 7: Solution
Kyle walks through the solution to Challenge 7 and answers students' questions.
ES6 Class
05:33:31 - 05:40:08
ES6 Class
Kyle dives into E6S class, stating that it's "syntactic sugar" and still prototype system.
Class Caution
05:40:09 - 05:48:35
Class Caution
If you use an ES6 class, Kyle points out the areas of caution.
Clearing Up Inheritance
05:48:36 - 05:50:34
Clearing Up Inheritance
In classical inheritance, properties and methods of a class are copied to object instantiated from that class. Subclasses inherit the properties and methods of a parent class and copy them to their instantiated objects. Kyle contrasts that with JavaScript's "prototypal inheritance" or "behavior delegation."


Video:

Width: 1280 pixels
Height: 720 pixels
Format: VP8
Codec: V_VP8
Duration: 00:03:28
Bit rate: 201 Kbps
Frame rate: 23.976 fps
Aspect ratio: 16:9
Bit depth: N/A
Color space: N/A
Subtitles: N/A


Audio:

Audio track: 1
Language: English
Codec: Vorbis
Channels: 2
Bit rate: 160 Kbps
Compression: Lossy
Sampling rate: 48 Khz







Download from NitroFlare


http://nitroflare.com/view/4C4D806AD8DCCCC/4v9mfpcwtt858f.z01
http://nitroflare.com/view/8263CB5BEA79616/4v9mfpcwtt858f.z02
http://nitroflare.com/view/52C61395AE75F54/4v9mfpcwtt858f.z03
http://nitroflare.com/view/AACA5FE59B3A651/4v9mfpcwtt858f.zip


Download from UploadGig


https://uploadgig.com/file/download/bFcffe254668E1db/4v9mfpcwtt858f.z01
https://uploadgig.com/file/download/b44b9ECc2914E22d/4v9mfpcwtt858f.z02
https://uploadgig.com/file/download/6108081405Ad4Fe1/4v9mfpcwtt858f.z03
https://uploadgig.com/file/download/cedBAf02546c3216/4v9mfpcwtt858f.zip


Download from FileFox


https://filefox.cc/i6bqtro93ykh/4v9mfpcwtt858f.z01
https://filefox.cc/qvtjd6kx88b5/4v9mfpcwtt858f.z02
https://filefox.cc/crl9qfae7slp/4v9mfpcwtt858f.z03
https://filefox.cc/eddhda8talnh/4v9mfpcwtt858f.zip


Extract the archives with Winrar 5 or WinZip(zip files) & password
Password: Golden_Plaza


Sponsored High Speed Downloads
9391 dl's @ 3244 KB/s
Download Now [Full Version]
7969 dl's @ 2486 KB/s
Download Link 1 - Fast Download
7711 dl's @ 3956 KB/s
Download Mirror - Direct Download



Search More...
Frontend Masters - Deep JavaScript Foundations

Search free ebooks in ebookee.com!


Related Archive Books

Archive Books related to "Frontend Masters - Deep JavaScript Foundations":



Links
Download this book

No active download links here?
Please check the description for download links if any or do a search to find alternative books.


Related Books

  1. Ebooks list page : 38433
  2. 2018-12-09Frontend Masters Deep JavaScript Foundations
  3. 2018-08-08Frontend Masters - Deep JavaScript Foundations - Removed
  4. 2017-09-20Deep JavaScript Foundations with Kyle Simpson (2017)]
  5. 2017-09-17Deep JavaScript Foundations with Kyle Simpson (2017)
  6. 2017-09-09Deep JavaScript Foundations with Kyle Simpson (2017)
  7. 2017-07-08Frontend Masters Advanced Asynchronous JavaScript - Removed
  8. 2016-09-02Frontend Masters - Rethinking Asynchronous JavaScript - Removed
  9. 2016-08-21Frontend Masters - Rethinking Asynchronous JavaScript - Removed
  10. 2016-05-14Frontend Masters - Rethinking Asynchronous JavaScript (2016) - Removed
  11. 2016-05-09Frontend Masters - Functional-Lite JavaScript (2016) - Removed
  12. 2014-06-11Frontend Masters - JavaScript the Good Parts - Removed
  13. 2018-12-21Javascript Foundations
  14. 2018-11-11FullStack JavaScript Foundations BootCamp-Master JavaScript
  15. 2018-11-09FullStack JavaScript Foundations BootCamp-Master JavaScript
  16. 2018-06-27Frontend Masters - Serverless with AWS - Removed
  17. 2018-05-12Frontend Masters - Serverless with AWS - Removed
  18. 2017-11-08Frontend Masters - Building Awesomer Apps with Angular - Removed
  19. 2017-10-02Frontend Masters - Web Security - Removed
  20. 2017-09-28Frontend Masters - Web Security with Mike North - Removed

Comments

No comments for "Frontend Masters - Deep JavaScript Foundations".


    Add Your Comments
    1. Download links and password may be in the description section, read description carefully!
    2. Do a search to find mirrors if no download links or dead links.
    Back to Top