Find online courses made by experts from around the world.
Take your courses with you and learn anywhere, anytime.
Learn and practice real-world skills and achieve your goals.
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.
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.
Not for you? No problem.
30 day money back guarantee.
Learn on the go.
Desktop, iOS and Android.
Certificate of completion.
|Section 1: Getting Started|
Introduction and The Goal of This CoursePreview
Watching this Course in High Definition
Understanding, Frameworks, and The Weird PartsPreview
|Section 2: Execution Contexts and Lexical Environments|
Conceptual Aside: Syntax Parsers, Execution Contexts, and Lexical EnvironmentsPreview
Conceptual Aside: Name/Value Pairs and ObjectsPreview
Downloading Source Code for This CoursePreview
The Global Environment and The Global ObjectPreview
The Execution Context - Creation and HoistingPreview
The Execution Context - Code ExecutionPreview
Conceptual Aside: Single Threaded, Synchronous ExecutionPreview
Function Invocation and the Execution StackPreview
Functions, Context, and Variable EnvironmentsPreview
The Scope ChainPreview
Scope, ES6, and letPreview
What About Asynchronous Callbacks?Preview
|Section 3: Types and Operators|
Conceptual Aside: OperatorsPreview
Operator Precedence and AssociativityPreview
Operator Precedence and Associativity TablePreview
Conceptual Aside: CoercionPreview
Equality Comparisons TablePreview
Existence and BooleansPreview
Framework Aside: Default ValuesPreview
|Section 4: Objects and Functions|
Objects and the Dot
Objects and Object Literals
Framework Aside: Faking Namespaces
JSON and Object Literals
Functions are Objects
Function Statements and Function Expressions
Conceptual Aside: By Value vs By Reference
Objects, Functions, and 'this'
Conceptual Aside: Arrays - Collections of Anything
'arguments' and spread
Framework Aside: Function Overloading
Conceptual Aside: Syntax Parsers
Dangerous Aside: Automatic Semicolon Insertion
Framework Aside: Whitespace
Immediately Invoked Functions Expressions (IIFEs)
Framework Aside: IIFEs and Safe Code
Understanding Closures - Part 2
Framework Aside: Function Factories
Closures and Callbacks
call(), apply(), and bind()
Functional Programming - Part 2
Conceptual Aside: Classical vs Prototypal Inheritance
Understanding the Prototype
Everything is an Object (or a primitive)
Reflection and Extend
|Section 6: Building Objects|
Function Constructors and '.prototype'
Dangerous Aside: 'new' and functions
Conceptual Aside: Built-In Function Constructors
Dangerous Aside: Built-In Function Constructors
Dangerous Aside: Arrays and for..in
Object.create and Pure Prototypal Inheritance
ES6 and Classes
|Section 7: Odds and Ends|
'typeof' , 'instanceof', and Figuring Out What Something Is
Strict Mode Reference
|Section 8: Examining Famous Frameworks and Libraries|
Learning From Other's Good Code
Deep Dive into Source Code: jQuery - Part 1
Deep Dive into Source Code: jQuery - Part 2
Deep Dive into Source Code: jQuery - Part 3
|Section 9: Let's Build a Framework / Library!|
Structuring Safe Code
Our Object and Its Prototype
Properties and Chainable Methods
Adding jQuery Support
Let's Use Our Framework
A Side Note
|Section 10: BONUS Lectures|
TypeScript, ES6, and Transpiled Languages
Transpiled Languages References
|Section 11: BONUS: Getting Ready for ECMAScript 6|
Existing and Upcoming Features
ES6 Features Reference
|Section 12: Conclusion|
Learning to Love the Weird Parts
Newly married in Cleveland Ohio, Tony is primarily focused these days on trying to be a good husband. While inexperienced at that, he's quite experienced in all things web.
Tony has been programming since he was 12 years old, and got into web sites and web application development at 16. After graduating with a Computer Science degree from Case Western Reserve University, Tony continued with that interest as a Microsoft certified software application developer and architect, database designer, and user interface designer.
He believes strongly that deeply understanding any topic allows you to properly learn it and, even more importantly in a real-world environment, quickly overcome problems.
He also has a deep interest in human nature and behavior, and how that impacts human-computer interaction. This interest translated into extending his career into user experience design and usability research.
Another link in the chain is his 25 years of experience in public speaking and teaching, both in front of large groups and as a one-on-one private instructor.
Putting all these pieces together, he has spent his career listening to a client need, designing a database and software to meet that need, building it, testing it, teaching others how to use it, then improving user experience by watching people actually use it and adjusting accordingly.
Tony loves teaching every aspect of what he does, and even more loves teaching in a way that imparts understanding, as opposed to just examples intended to be parroted. He loves that moment when a student 'gets it', and that's what he wants for you when you take one of his courses.
He has found that those that learn purely by example, and not by understanding, end up much more limited than they need to be.
"Examples need to be built on top of context, and once you have context, you can not only copy the examples you find, but adjust and improve upon them."
He firmly believes that everyone has the ability to develop software, if they are just taught properly. Including you.
"It is my pleasure and privilege to teach you. I hope you'll come away knowing something you didn't before, understanding at a level deeper than before, and feeling positive that you can accomplish what you've set out to accomplish. Thank you!" - Tony Alicea
Ask Tony a question, read a post, or follow him around internet.