Skip to content logo

Illustrated Notes

The JavaScript Bits You Skipped the First Time Around

Published or updated on December 28, 2019

Being humans, we rarely learn things linearly. No one begins their JavaScript journey by reading the TC39 language specification line-by-line like a pedantic masochist.

Instead we all cobble together a good-enough understanding, leaving holes here and there to fill in later.

So far I've stumbled along without 100% grokking prototypical inheritance, or how call, apply, and bind work on functions.
It's fine. Stuff mostly works. Until it doesn't ¯_(ツ)_/¯

But at some point, it's useful to stop stumbling about and peek back at those holes.

Tyler Clark latest course on Advanced JavaScript Foundations is exactly that hole-filling opportunity.

Course illustration of a building with a bright yellow foundation floor for advanced javascript foundations

Tyler runs through all the details that usually get skipped over in beginners tutorials. The ones that make a huge difference when you're deep in a debugging session, and can't figure out where the f🍪🍩k this is pointing and why all your results are undefined.

Here's some of my sketch notes from the course – they include plenty of DNA inheritence metaphors 🧬 and a few cups of caffiene to keep you alert.

Advanced JS fundamentals title slide

The primitive types are not objects, have no methods, and can't be mutated.

Prototypes are how we do inheritance in JS. They're linked objects of parents and children that pass down inherited properties. All JS objects are made from a default prototype that includes the __proto__ property

.prototype is different to __proto__. It's a method on a function that points to a constructor object.

The this keyword points to an object based on the execution context of where a function is called, not where it's defined.

Hopefully these gave you a sense of the main concepts, and a small map of where your own JavaScript 🕳 holes are (or lack of holes if you've already diligently filled them in!)

The Whole Illustrated Note

The full advanced JS fundamentals illustrated note

Want to learn more?

A high-res & printable version of the notes, plus the full course is avaliable here on the Advanced JavaScript Fundamentals page.