4.73 out of 5
4.73
37111 reviews on Udemy

JavaScript: Understanding the Weird Parts

An advanced JavaScript course for everyone! Scope, closures, prototypes, 'this', build your own framework, and more.
Instructor:
Anthony Alicea
143,897 students enrolled
English More
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

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.

Getting Started

1
Introduction and The Goal of This Course
2
Setup
3
Big Words and Javascript
4
Watching this Course in High Definition
5
Understanding, Frameworks, and The Weird Parts

Execution Contexts and Lexical Environments

1
Conceptual Aside: Syntax Parsers, Execution Contexts, and Lexical Environments
2
Conceptual Aside: Name/Value Pairs and Objects
3
Downloading Source Code for This Course
4
The Global Environment and The Global Object
5
The Execution Context - Creation and Hoisting
6
Conceptual Aside: Javascript and 'undefined'
7
The Execution Context - Code Execution
8
Conceptual Aside: Single Threaded, Synchronous Execution
9
Function Invocation and the Execution Stack
10
Functions, Context, and Variable Environments
11
The Scope Chain
12
Scope, ES6, and let
13
What About Asynchronous Callbacks?

Types and Operators

1
Conceptual Aside: Types and Javascript
2
Primitive Types
3
Conceptual Aside: Operators
4
Operator Precedence and Associativity
5
Operator Precedence and Associativity Table
6
Conceptual Aside: Coercion
7
Comparison Operators
8
Equality Comparisons Table
9
Existence and Booleans
10
Default Values
11
Framework Aside: Default Values

Objects and Functions

1
Objects and the Dot
2
Objects and Object Literals
3
Framework Aside: Faking Namespaces
4
JSON and Object Literals
5
Functions are Objects
6
Function Statements and Function Expressions
7
Conceptual Aside: By Value vs By Reference
8
Objects, Functions, and 'this'
9
Conceptual Aside: Arrays - Collections of Anything
10
'arguments' and spread
11
Framework Aside: Function Overloading
12
Conceptual Aside: Syntax Parsers
13
Dangerous Aside: Automatic Semicolon Insertion
14
Framework Aside: Whitespace
15
Immediately Invoked Functions Expressions (IIFEs)
16
Framework Aside: IIFEs and Safe Code
17
Understanding Closures
18
Understanding Closures - Part 2
19
Framework Aside: Function Factories
20
Closures and Callbacks
21
call(), apply(), and bind()
22
Functional Programming
23
Functional Programming - Part 2

Object-Oriented Javascript and Prototypal Inheritance

1
Conceptual Aside: Classical vs Prototypal Inheritance
2
Understanding the Prototype
3
Everything is an Object (or a primitive)
4
Reflection and Extend

Building Objects

1
Function Constructors, 'new', and the History of Javascript
2
Function Constructors and '.prototype'
3
Dangerous Aside: 'new' and functions
4
Conceptual Aside: Built-In Function Constructors
5
Dangerous Aside: Built-In Function Constructors
6
Dangerous Aside: Arrays and for..in
7
Object.create and Pure Prototypal Inheritance
8
ES6 and Classes

Odds and Ends

1
Initialization
2
'typeof' , 'instanceof', and Figuring Out What Something Is
3
Strict Mode
4
Strict Mode Reference

Examining Famous Frameworks and Libraries

1
Learning From Other's Good Code
2
Deep Dive into Source Code: jQuery - Part 1
3
Deep Dive into Source Code: jQuery - Part 2
4
Deep Dive into Source Code: jQuery - Part 3

Let's Build a Framework / Library!

1
Requirements
2
Structuring Safe Code
3
Our Object and Its Prototype
4
Properties and Chainable Methods
5
Adding jQuery Support
6
Good Commenting
7
Let's Use Our Framework
8
A Side Note

BONUS Lectures

1
TypeScript, ES6, and Transpiled Languages
2
Transpiled Languages References

BONUS: Getting Ready for ECMAScript 6

1
Existing and Upcoming Features
2
ES6 Features Reference

Conclusion

1
Learning to Love the Weird Parts
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.7
4.7 out of 5
37111 Ratings

Detailed Rating

Stars 5
27498
Stars 4
7847
Stars 3
1345
Stars 2
263
Stars 1
158
48a253611defd26af373fe352fbfbe9f
30-Day Money-Back Guarantee

Includes

11 hours on-demand video
7 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion