
Explore use strict, variable passing, and the JavaScript specification. Learn who decides what belongs in JavaScript and how the language evolves over time.
Learn how template string tags turn template literals into powerful helpers for HTML tags, interpolation, and i18n with currencies and locales, as seen in styled components.
Explore destructuring from ES6 and four looping methods using the for keyword, with a balanced deep dive into when to use each and their pros and cons.
Explore the this keyword and how it trips up JavaScript developers. Learn why interview questions about this topic serve as watershed checks for skill level.
Explore how this behaves in JavaScript across global scope, inside functions, and in objects; learn how calling context and strict mode affect this and stabilizing it with self.
Explain how javascript traverses the prototype chain to resolve properties, show how __proto__ links objects, and introduce ECMAScript 5's Object.create as the recommended way to set prototypes.
Explore how JavaScript uses prototype inheritance and contrasts it with classical and pseudo classical patterns, clarifying that only prototype inheritance is real in JavaScript.
Explore the prototype pattern in JavaScript, using object.create to build a prototype chain, bootstrap objects, and compare prototype inheritance with constructor patterns, without using classes.
Explore the core of asynchronous JavaScript, including blocking vs non-blocking code, and master callbacks, promises, and async/await to build fast, high-performance apps.
Explore what a callback is in JavaScript and why callbacks are not inherently asynchronous; learn how to defer execution with setTimeout and apply error-first callbacks for robust error handling.
Learn how async/await differs from promises, how awaiting blocks execution, and why async functions return promises; weigh readability against potential performance costs.
http://www.html5rocks.com/en/tutorials/cors/
Learn JSONP, a GET-only cross-domain data technique that wraps JSON in a callback and loads via a script tag, bypassing the same-origin policy, with use cases like weather APIs.
Explore how event capturing and bubbling govern how events travel from the root to the target and back, and how listeners select the phase (default is bubbling).
In only seven hours you will learn enough JavaScript to transform from a junior javascript developer into a senior javascript guru.
You will dramatically improve your chances of getting past a technical interview, landing that dream job and earning more money.
If you are like me you learnt Javascript by just muddling along, seeing what works and learning a thing or two every day.
However, without a grasp of the deeper fundamentals, you will hit quite a few head scratchy issues, introduce bugs, find it hard to read and understand framework and library code and won’t be considered a senior developer.
This unique course teaches you advanced javascript knowledge through a series of interview questions, with regular quizzes on the way through to cement your knowledge.
What are you going to learn?
Types & Equality: The different types in JS and how to check if two values are really equal?
Scopes: The different scopes a variable can be declared in and how to manipulate those scopes.
Destructuring & Looping: Did you know that JavaScript has for methods of looping over things?
This: We have a whole section dedicated to the this keyword. A deep understanding of the this keyword is core to becoming a senior JavaScript developer.
Object Orientation: The history of OO in JavaScript from the Prototype Pattern to the Pseudo-Classical/Constructor Pattern all the way to the class syntax introduced in ES6. You need to know the previous patterns to truly understand the current class pattern.
Asynchronous Programming: JavaScript power is in its asynchronicity, you will learn all about the pros and cons of callbacks, promises and async/await.
Advanced topics in Networking such as CORS and JSONP.
Advanced topics in Event Handling such as the different event phases.
Why an interview format?
I find that it's only when I'm facing an upcoming interview that I get into gear and really make sure I have a deep understanding of what I claim to know.
I might know the best practice for how to solve a problem, but do I know why?
Javascript interviews are designed to dig deeper into your knowledge of a subject, see if you are just mimicking what you have read or if you have a proper understanding.
Also, it's FUN, what's more satisfying than learning something, then passing a test!