Advanced JavaScript Essentials
Lesson 1: Introduction to Advanced JavaScript
Welcome to Advanced JavaScript Accessing the Console Using the Console Good Programming Style Practices Testing Code in the Console Interacting Directly in the Console Commenting Your Code
Quiz 1
Lesson 2: Know Your Types
Know Your Types: Primitives and Objects Primitives
Some Interesting Numbers Objects
Enumerating Object Properties Primitives That Act like Objects JavaScript is Dynamically Typed
Quiz 1 Project 1 Project 2 Project 3 Lesson 3: T rut hy, Falsey, and Equality
Truthy, Falsey, and Equality
Values That are Truthy or Falsey Implied Typecasting Testing Equality Objects and Truthy-ness Objects and Equality
Quiz 1 Project 1 Project 2 Lesson 4: Constructing Objects
Constructing JavaScript Objects
Constructing an Object with a Constructor Function Constructing an Object Using a Literal Constructing an Object Using a Generic Object Constructor So, What's the Best Way to Make an Object?
Initializing Values in Constructors this
Constructing Array Objects
Quiz 1 Project 1 Project 2 Lesson 5: Prototypes and Inheritance
Object-Oriented Programming in JavaScript instanceof Prototypes
Prototypes of Literal Objects What is a Prototype Good For?
The Prototype Chain
Prototypal Inheritance
When are Prototype Objects Created?
hasOwnProperty
proto
Setting the Prototype Property to an Object Yourself
Quiz 1 Quiz 2 Project 1 Project 2 Lesson 6: Functions JavaScript Functions What is a Function?
Different Ways of Defining a Function
Functions as First Class Values
Anonymous Functions
Returning a Function from a Function
Functions as Callbacks
Calling Functions: Pass-by-Value
Return
Quiz 1 Quiz 2 Project 1 Project 2 Lesson 7: Scope Scope
Variable Scope Function Scope Hoisting
Nested Functions Lexical Scoping Scope Chains Inspecting the Scope Chain
Quiz 1 Project 1
Lesson 8: Invoking Functions
Invoking Functions
Different Ways to Invoke Functions
What Happens to this When You Invoke a Function
Nested Functions
When You Want to Control How this is Defined callQ and applv()
Function Arguments
The Four Ways to Invoke a Function
Quiz 1 Project 1 Project 2 Lesson 9: Invocation Patterns
Invocation Patterns Recursion
Why Use Recursion?
Chaining (a la jQuery)
Static vs. Instance Methods
Quiz 1 Project 1 Project 2 Project 3 Lesson 10: Encapsulation and APIs
Encapsulation and APIs Privacy, Please An Example Private Variables
Private Functions
A Public Method
Acessing a Public Method from a Private Function Encapsulation and APIs
Quiz 1 Project 1 Project 2 Lesson 11: Closures Closures
Making a Closure What is a Closure?
Playing with Closures Each Closure is Unique
Closures Might Not Always Act Like You Expect Closures for Methods Using Closures
Where We've Used Closures Before Quiz 1 Project 1
Lesson 12: The Module Pattern
Module Pattern
IIFE or Immediately Invoked Function Expressions The Module Pattern
Using the Module Pattern with JavaScript Libraries A Shopping Basket Using the Module Pattern Why Not Just Use an Object Constructor?
Quiz 1 Project 1
Lesson 13: The JavaScript Environment
JavaScript Runs in an Environment
The Core Language, and the Environment's Extensions
How the Browser Runs JavaScript Code
Including JavaScript in Your Page
The JavaScript Event Loop
The Event Queue
Asynchronous Programming
JavaScript in Environments Other Than the Browser
Quiz 1 Project 1 Lesson 14: ECMAScript 5.1
The ECMAScript Standard for JavaScript Strict Mode New Methods
Object Property Descriptors Sealing and Freezing Objects Creating Objects
Project 1 Project 2
Copyright © 1998-2014 O'Reilly Media, Inc.
This work is licensed und