JavaScript: Understanding the Weird Parts (2024 Edition)

JavaScript: Understanding the Weird Parts (2024 Edition)

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 92 lectures (12h 37m) | 3.94 GB

An advanced JavaScript course for everyone! Scope, closures, prototypes, ‘this’, build your own framework, and more.

Javascript is the language that modern developers need to know, and know well. Truly knowing Javascript will get you a job, and enable you to build quality web and server applications.

NOTE: This course includes information on ECMAScript 6 (ES6) the next version of Javascript!

In this course you will gain a deep understanding of Javascript, learn how Javascript works under the hood, and how that knowledge helps you avoid common pitfalls and drastically improve your ability to debug problems. You will find clarity in the parts that others, even experienced coders, may find weird, odd, and at times incomprehensible. You’ll learn the beauty and deceptive power of this language that is at the forefront of modern software development today.

This course will cover such advanced concepts as objects and object literals, function expressions, prototypical inheritance, functional programming, scope chains, function constructors (plus new ES6 features), immediately invoked function expressions (IIFEs), call, apply, bind, and more.

We’ll take a deep dive into the source code of popular frameworks such as jQuery and Underscore to see how you can use your understanding of Javascript to learn (and borrow) from other’s good code.

Finally, you’ll learn the foundations of how to build your own Javascript framework or library.

What you’ll learn in this course will make you a better Javascript developer, and improve your abilities in AngularJS, NodeJS, jQuery, React, Ember, MongoDB, and all other Javascript-based technologies!

Learn to love Javascript, and code in it well.

Note: In this course you’ll also get downloadable source code. You will often be provided with ‘starter’ code, giving you the base for you to start writing your code, and ‘finished’ code to compare your code to.

What you’ll learn

  • Grasp how Javascript works and it’s fundamental concepts
  • Write solid, good Javascript code
  • Understand advanced concepts such as closures, prototypal inheritance, IIFEs, and much more.
  • Drastically improve your ability to debug problems in Javascript.
  • Avoid common pitfalls and mistakes other Javascript coders make
  • Understand the source code of popular Javascript frameworks
  • Build your own Javascript framework or library
Table of Contents

Getting Started
1 Introduction and The Goal of This Course
2 Setup
3 Setup Visual Studio Code
4 Big Words and Javascript
5 Watching this Course in High Definition
6 Understanding Frameworks and The Weird Parts

Execution Contexts and Lexical Environments
7 Conceptual Aside Syntax Parsers Execution Contexts and Lexical Environments
8 Conceptual Aside NameValue Pairs and Objects
9 Downloading Source Code for This Course
10 The Global Environment and The Global Object
11 The Execution Context Creation and Hoisting
12 Conceptual Aside Javascript and undefined
13 The Execution Context Code Execution
14 Conceptual Aside Single Threaded Synchronous Execution
15 Function Invocation and the Execution Stack
16 Functions Context and Variable Environments
17 The Scope Chain
18 Scope ES6 and let
19 What About Asynchronous Callbacks

Types and Operators
20 Conceptual Aside Types and Javascript
21 Primitive Types
22 Conceptual Aside Operators
23 Operator Precedence and Associativity
24 Operator Precedence and Associativity Table
25 Conceptual Aside Coercion
26 Comparison Operators
27 Equality Comparisons Table
28 Existence and Booleans
29 Default Values
30 Framework Aside Default Values

Objects and Functions
31 Objects and the Dot
32 Objects and Object Literals
33 Framework Aside Faking Namespaces
34 JSON and Object Literals
35 Functions are Objects
36 Function Statements and Function Expressions
37 Conceptual Aside By Value vs By Reference
38 Objects Functions and this
39 Conceptual Aside Arrays Collections of Anything
40 arguments and spread
41 Framework Aside Function Overloading
42 Conceptual Aside Syntax Parsers
43 Dangerous Aside Automatic Semicolon Insertion
44 Framework Aside Whitespace
45 Immediately Invoked Functions Expressions IIFEs
46 Framework Aside IIFEs and Safe Code
47 Understanding Closures
48 Understanding Closures Part 2
49 Framework Aside Function Factories
50 Closures and Callbacks
51 call apply and bind
52 Functional Programming
53 Functional Programming Part 2

ObjectOriented Javascript and Prototypal Inheritance
54 Conceptual Aside Classical vs Prototypal Inheritance
55 Understanding the Prototype
56 Everything is an Object or a primitive
57 Reflection and Extend

Building Objects
58 Function Constructors new and the History of Javascript
59 Function Constructors and prototype
60 Dangerous Aside new and functions
61 Conceptual Aside BuiltIn Function Constructors
62 Dangerous Aside BuiltIn Function Constructors
63 Dangerous Aside Arrays and forin
64 Objectcreate and Pure Prototypal Inheritance
65 ES6 and Classes

Odds and Ends
66 Initialization
67 typeof instanceof and Figuring Out What Something Is
68 Strict Mode
69 Strict Mode Reference

Examining Famous Frameworks and Libraries
70 Learning From Others Good Code
71 Deep Dive into Source Code jQuery Part 1
72 Deep Dive into Source Code jQuery Part 2
73 Deep Dive into Source Code jQuery Part 3

Lets Build a Framework Library
74 Requirements
75 Structuring Safe Code
76 Our Object and Its Prototype
77 Properties and Chainable Methods
78 Adding jQuery Support
79 Good Commenting
80 Lets Use Our Framework
81 A Side Note

EXTRA TypeScript ES6 and Transpiled Languages
82 TypeScript ES6 and Transpiled Languages
83 Transpiled Languages References

Promises Async and Await
84 About This Section
85 Promises Async and Await

ES6 The Most Used Parts
86 ES6 The Most Used Parts
87 let
88 const
89 Arrow Functions
90 Destructuring Assignment

Conclusion
91 Learning to Love the Weird Parts
92 Bonus

Homepage