JavaScript: Understanding the Weird Parts
4.7 (37,944 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
147,186 students enrolled

JavaScript: Understanding the Weird Parts

An advanced JavaScript course for everyone! Scope, closures, prototypes, 'this', build your own framework, and more.
4.7 (37,944 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
147,172 students enrolled
Created by Anthony Alicea
Last updated 8/2015
English
English, French [Auto], 7 more
  • Indonesian [Auto]
  • Italian [Auto]
  • Polish [Auto]
  • Portuguese [Auto]
  • Romanian [Auto]
  • Spanish [Auto]
  • Thai [Auto]
Current price: $104.99 Original price: $174.99 Discount: 40% off
37 minutes left at this price!
30-Day Money-Back Guarantee
This course includes
  • 11.5 hours on-demand video
  • 7 articles
  • 50 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
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
Course content
Expand all 85 lectures 11:29:55
+ Execution Contexts and Lexical Environments
13 lectures 01:34:22
+ Objects and Functions
23 lectures 04:28:13
Objects and the Dot
15:23
Objects and Object Literals
10:32
Framework Aside: Faking Namespaces
08:07
JSON and Object Literals
07:17
Functions are Objects
08: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
05:39
'arguments' and spread
12:00
Framework Aside: Function Overloading
04:43
Conceptual Aside: Syntax Parsers
02:25
Dangerous Aside: Automatic Semicolon Insertion
05:46
Framework Aside: Whitespace
04:25
Immediately Invoked Functions Expressions (IIFEs)
17:07
Framework Aside: IIFEs and Safe Code
08:05
Understanding Closures
11:09
Understanding Closures - Part 2
19:20
Framework Aside: Function Factories
12:24
Closures and Callbacks
08:26
call(), apply(), and bind()
20:54
Functional Programming
20:17
Functional Programming - Part 2
08:05
+ Object-Oriented Javascript and Prototypal Inheritance
4 lectures 39:58
Conceptual Aside: Classical vs Prototypal Inheritance
05:11
Understanding the Prototype
14:02
Everything is an Object (or a primitive)
05:46
Reflection and Extend
14:59
+ Building Objects
8 lectures 01:07:22
Function Constructors, 'new', and the History of Javascript
15:53
Function Constructors and '.prototype'
10:24
Dangerous Aside: 'new' and functions
04:16
Conceptual Aside: Built-In Function Constructors
10:32
Dangerous Aside: Built-In Function Constructors
03:57
Dangerous Aside: Arrays and for..in
03:16
Object.create and Pure Prototypal Inheritance
12:37
ES6 and Classes
06:27
+ Odds and Ends
4 lectures 18:34
Initialization
05:41
'typeof' , 'instanceof', and Figuring Out What Something Is
06:41
Strict Mode
05:51
Strict Mode Reference
00:21
+ Examining Famous Frameworks and Libraries
4 lectures 52:22
Learning From Other's Good Code
03: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
+ Let's Build a Framework / Library!
8 lectures 48:45
Requirements
02:57
Structuring Safe Code
03:07
Our Object and Its Prototype
09:17
Properties and Chainable Methods
16:58
Adding jQuery Support
05:22
Good Commenting
02:21
Let's Use Our Framework
08:11
A Side Note
00:32
+ BONUS Lectures
2 lectures 05:11
TypeScript, ES6, and Transpiled Languages
04:33
Transpiled Languages References
00:38
Requirements
  • Basic Javascript knowledge (variables, loops, and basic functions - that's all the course expects you to know!)
  • A browser and text editor
Description

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.

Who this course is for:
  • Those with basic Javascript skills who wish to improve
  • Experienced coders coming from other programming languages
  • New and experienced Javascript coders who want to deepen their understanding of the language
  • Anyone who has found concepts just as object prototypes, closures, and other advanced concepts difficult to learn
  • Those who have suffered surprising errors while writing Javascript, and want to learn why and how to avoid them
  • Those interested in building their own frameworks, or being better able to learn from the source code of other well-known frameworks and libraries