

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.
-
7Conceptual Aside: Syntax Parsers, Execution Contexts, and Lexical Environments
-
8Conceptual Aside: Name/Value Pairs and Objects
-
9Downloading Source Code for This Course
-
10The Global Environment and The Global Object
-
11The Execution Context - Creation and Hoisting
-
12Conceptual Aside: Javascript and 'undefined'
-
13The Execution Context - Code Execution
-
14Conceptual Aside: Single Threaded, Synchronous Execution
-
15Function Invocation and the Execution Stack
-
16Functions, Context, and Variable Environments
-
17The Scope Chain
-
18Scope, ES6, and let
-
19What About Asynchronous Callbacks?
-
20Conceptual Aside: Types and Javascript
-
21Primitive Types
-
22Conceptual Aside: Operators
-
23Operator Precedence and Associativity
-
24Operator Precedence and Associativity Table
-
25Conceptual Aside: Coercion
-
26Comparison Operators
-
27Equality Comparisons Table
-
28Existence and Booleans
-
29Default Values
-
30Framework Aside: Default Values
-
31Objects and the Dot
-
32Objects and Object Literals
-
33Framework Aside: Faking Namespaces
-
34JSON and Object Literals
-
35Functions are Objects
-
36Function Statements and Function Expressions
-
37Conceptual Aside: By Value vs By Reference
-
38Objects, Functions, and 'this'
-
39Conceptual Aside: Arrays - Collections of Anything
-
40'arguments' and spread
-
41Framework Aside: Function Overloading
-
42Conceptual Aside: Syntax Parsers
-
43Dangerous Aside: Automatic Semicolon Insertion
-
44Framework Aside: Whitespace
-
45Immediately Invoked Functions Expressions (IIFEs)
-
46Framework Aside: IIFEs and Safe Code
-
47Understanding Closures
-
48Understanding Closures - Part 2
-
49Framework Aside: Function Factories
-
50Closures and Callbacks
-
51call(), apply(), and bind()
-
52Functional Programming
-
53Functional Programming - Part 2
-
58Function Constructors, 'new', and the History of Javascript
-
59Function Constructors and '.prototype'
-
60Dangerous Aside: 'new' and functions
-
61Conceptual Aside: Built-In Function Constructors
-
62Dangerous Aside: Built-In Function Constructors
-
63Dangerous Aside: Arrays and for..in
-
64Object.create and Pure Prototypal Inheritance
-
65ES6 and Classes















































































































































































































































