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.
JavaScript: Understanding the Weird Parts
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!
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.
- 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
About the Authors
Anthony Alicea
udemy
Udemy is a global online marketplace for teaching and learning. It connects students with instructors who share skills in many fields.
Who Uses Udemy
Millions of learners use Udemy to gain skills for work and personal growth. Companies, governments, and nonprofits also use Udemy to train their teams.
What Udemy Offers
Udemy provides a curated set of business and technical courses. These courses help teams build practical skills and support ongoing learning at work.
Watch Online 79 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Introduction and The Goal of This Course Demo | 04:57 | |
| 2 | Setup | 03:28 | |
| 3 | Big Words and Javascript | 01:26 | |
| 4 | Understanding, Frameworks, and The Weird Parts | 04:18 | |
| 5 | Conceptual Aside: Syntax Parsers, Execution Contexts, and Lexical Environments | 07:36 | |
| 6 | Conceptual Aside: Name/Value Pairs and Objects | 04:09 | |
| 7 | The Global Environment and The Global Object | 10:59 | |
| 8 | The Execution Context - Creation and Hoisting | 09:44 | |
| 9 | Conceptual Aside: Javascript and 'undefined' | 08:05 | |
| 10 | The Execution Context - Code Execution | 02:55 | |
| 11 | Conceptual Aside: Single Threaded, Synchronous Execution | 02:17 | |
| 12 | Function Invocation and the Execution Stack | 08:07 | |
| 13 | Functions, Context, and Variable Environments | 07:57 | |
| 14 | The Scope Chain | 17:26 | |
| 15 | Scope, ES6, and let | 04:19 | |
| 16 | What About Asynchronous Callbacks? | 10:27 | |
| 17 | Conceptual Aside: Types and Javascript | 02:51 | |
| 18 | Primitive Types | 05:18 | |
| 19 | Conceptual Aside: Operators | 06:33 | |
| 20 | Operator Precedence and Associativity | 14:15 | |
| 21 | Conceptual Aside: Coercion | 06:15 | |
| 22 | Comparison Operators | 19:43 | |
| 23 | Existence and Booleans | 07:24 | |
| 24 | Default Values | 07:52 | |
| 25 | Framework Aside: Default Values | 07:12 | |
| 26 | Objects and the Dot | 15:24 | |
| 27 | Objects and Object Literals | 10:33 | |
| 28 | Framework Aside: Faking Namespaces | 08:08 | |
| 29 | JSON and Object Literals | 07:18 | |
| 30 | Functions are Objects | 08:03 | |
| 31 | Function Statements and Function Expressions | 20:33 | |
| 32 | Conceptual Aside: By Value vs By Reference | 16:10 | |
| 33 | Objects, Functions, and 'this' | 21:27 | |
| 34 | Conceptual Aside: Arrays - Collections of Anything | 05:40 | |
| 35 | 'arguments' and spread | 12:01 | |
| 36 | Framework Aside: Function Overloading | 04:44 | |
| 37 | Conceptual Aside: Syntax Parsers | 02:26 | |
| 38 | Dangerous Aside: Automatic Semicolon Insertion | 05:48 | |
| 39 | Framework Aside: Whitespace | 04:26 | |
| 40 | Immediately Invoked Functions Expressions (IIFEs) | 17:08 | |
| 41 | Framework Aside: IIFEs and Safe Code | 08:06 | |
| 42 | Understanding Closures | 11:10 | |
| 43 | Understanding Closures - Part 2 | 19:21 | |
| 44 | Framework Aside: Function Factories | 12:25 | |
| 45 | Closures and Callbacks | 08:27 | |
| 46 | call(), apply(), and bind() | 20:56 | |
| 47 | Functional Programming | 20:18 | |
| 48 | Functional Programming - Part 2 | 08:06 | |
| 49 | Conceptual Aside: Classical vs Prototypal Inheritance | 05:12 | |
| 50 | Understanding the Prototype | 14:03 | |
| 51 | Everything is an Object (or a primitive) | 05:47 | |
| 52 | Reflection and Extend | 15:00 | |
| 53 | Function Constructors, 'new', and the History of Javascript | 15:55 | |
| 54 | Function Constructors and '.prototype' | 10:25 | |
| 55 | Dangerous Aside: 'new' and functions | 04:17 | |
| 56 | Conceptual Aside: Built-In Function Constructors | 10:33 | |
| 57 | Dangerous Aside: Built-In Function Constructors | 03:58 | |
| 58 | Dangerous Aside: Arrays and for..in | 03:17 | |
| 59 | Object.create and Pure Prototypal Inheritance | 12:38 | |
| 60 | ES6 and Classes | 06:28 | |
| 61 | Initialization | 05:42 | |
| 62 | 'typeof' , 'instanceof', and Figuring Out What Something Is | 06:42 | |
| 63 | Strict Mode | 05:52 | |
| 64 | Learning From Other's Good Code | 03:52 | |
| 65 | Deep Dive into Source Code: jQuery - Part 1 | 21:32 | |
| 66 | Deep Dive into Source Code: jQuery - Part 2 | 15:39 | |
| 67 | Deep Dive into Source Code: jQuery - Part 3 | 11:23 | |
| 68 | Requirements | 02:59 | |
| 69 | Structuring Safe Code | 03:08 | |
| 70 | Our Object and Its Prototype | 09:18 | |
| 71 | Properties and Chainable Methods | 16:59 | |
| 72 | Adding jQuery Support | 05:23 | |
| 73 | Good Commenting | 02:22 | |
| 74 | Let's Use Our Framework | 08:12 | |
| 75 | A Side Note | 00:33 | |
| 76 | TypeScript, ES6, and Transpiled Languages | 04:34 | |
| 77 | Existing and Upcoming Features | 00:55 | |
| 78 | Promises, Async, and Await | 42:44 | |
| 79 | Learning to Love the Weird Parts | 01:15 |
Get instant access to all 78 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionRelated courses
-
FreeMastering JavaScript Unit Testing
Sources: codewithmosh (Mosh Hamedani)A comprehensive, beginner-friendly guide covering everything from the basics to advanced techniques. Tired of piecing together disconnected tutorials or dealing with rambling…3 hours 51 minutes 31 seconds 5 / 5 -

Premium Javascript (Premium membership)
Sources: Watch and codeThis is not just another course on JavaScript, where the teacher just writes something, without really explaining what he is doing63 hours 55 minutes 37 seconds -

JavaScript Interview Espresso
Sources: interviewespresso (Aaron Jack)Master complex algorithms and design patterns in JavaScript to excel in technical interviews. Enhance your coding skills and prepare effectively with JavaScript5 hours 11 minutes 16 seconds -

JavaScript for Everyone
Sources: Mat “Wilto” MarquisDive into JavaScript with Matt Marquis. Learn to solve problems efficiently and elevate your skills in the rapidly evolving field of development.5 / 5 -

20 Web Projects With Vanilla JavaScript
Sources: udemy, Brad TraversyThis is a fun, practical & project based course for all skill levels. The projects in this course are designed to get you building things using HTML5, CSS & Jav16 hours 8 minutes 55 seconds -

Learn JavaScript (Everything packet)
Sources: Zell LiewMaster JavaScript with a proven method that guarantees success. JavaScript is one of the most important skills for a front-end developer. When you have a...36 hours 27 minutes 55 seconds