Autoplay
Autocomplete
Previous Lesson
Complete and Continue
JavaScript: Understanding the Weird Parts
Getting Started
Introduction and The Goal of This Course (4:56)
Setup (3:27)
Big Words and Javascript (1:25)
Watching this Course in High Definition
Understanding, Frameworks, and The Weird Parts (4:17)
Execution Contexts and Lexical Environments
Conceptual Aside: Syntax Parsers, Execution Contexts, and Lexical Environments (7:35)
Conceptual Aside: Name/Value Pairs and Objects (4:08)
Downloading Source Code for This Course
The Global Environment and The Global Object (10:58)
The Execution Context - Creation and Hoisting (9:43)
Conceptual Aside: Javascript and 'undefined' (8:04)
The Execution Context - Code Execution (2:54)
Conceptual Aside: Single Threaded, Synchronous Execution (2:16)
Function Invocation and the Execution Stack (8:06)
Functions, Context, and Variable Environments (7:56)
The Scope Chain (17:25)
Scope, ES6, and let (4:18)
What About Asynchronous Callbacks? (10:26)
Types and Operators
Conceptual Aside: Types and Javascript (2:50)
Primitive Types (5:17)
Conceptual Aside: Operators (6:32)
Operator Precedence and Associativity (14:14)
Operator Precedence and Associativity Table
Conceptual Aside: Coercion (6:14)
Comparison Operators (19:42)
Equality Comparisons Table
Existence and Booleans (7:23)
Default Values (7:51)
Framework Aside: Default Values (7:11)
Objects and Functions
Objects and the Dot (15:23)
Objects and Object Literals (10:32)
Framework Aside: Faking Namespaces (8:07)
JSON and Object Literals (7:17)
Functions are Objects (8:02)
Function Statements and Function Expressions (20:32)
Conceptual Aside: By Value vs By Reference (16:09)
Objects, Functions, and 'this' (21:26)
Conceptual Aside: Arrays - Collections of Anything (5:39)
'arguments' and spread (12:00)
Framework Aside: Function Overloading (4:42)
Conceptual Aside: Syntax Parsers (2:25)
Dangerous Aside: Automatic Semicolon Insertion (5:46)
Framework Aside: Whitespace (4:25)
Immediately Invoked Functions Expressions (IIFEs) (17:07)
Framework Aside: IIFEs and Safe Code (8:05)
Understanding Closures (11:09)
Understanding Closures - Part 2 (19:20)
Framework Aside: Function Factories (12:24)
Closures and Callbacks (8:26)
call(), apply(), and bind() (20:54)
Functional Programming (20:17)
Functional Programming - Part 2 (8:05)
Object-Oriented Javascript and Prototypal Inheritance
Conceptual Aside: Classical vs Prototypal Inheritance (5:11)
Understanding the Prototype (14:02)
Everything is an Object (or a primitive) (5:46)
Reflection and Extend (14:59)
Building Objects
Function Constructors, 'new', and the History of Javascript (15:53)
Function Constructors and '.prototype' (10:24)
Dangerous Aside: 'new' and functions (4:16)
Conceptual Aside: Built-In Function Constructors (10:32)
Dangerous Aside: Built-In Function Constructors (3:57)
Dangerous Aside: Arrays and for..in (3:16)
Object.create and Pure Prototypal Inheritance (12:37)
ES6 and Classes (6:27)
Odds and Ends
Initialization (5:41)
'typeof' , 'instanceof', and Figuring Out What Something Is (6:41)
Strict Mode (5:51)
Strict Mode Reference
Examining Famous Frameworks and Libraries
Learning From Other's Good Code (3:51)
Deep Dive into Source Code: jQuery - Part 1 (21:31)
Deep Dive into Source Code: jQuery - Part 2 (15:38)
Deep Dive into Source Code: jQuery - Part 3 (11:22)
Lets Build a Framework Library
Requirements (2:57)
Structuring Safe Code (3:07)
Our Object and Its Prototype (9:17)
Properties and Chainable Methods (16:58)
Adding jQuery Support (5:22)
Good Commenting (2:21)
Let's Use Our Framework (8:11)
BONUS Lectures
TypeScript, ES6, and Transpiled Languages (4:33)
Transpiled Languages References
BONUS Getting Ready for ECMAScript 6
Existing and Upcoming Features (0:54)
ES6 Features Reference
Conclusion
Learning to Love the Weird Parts (1:14)
Requirements
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock