Rob Richardson

JavaScript the Grumpy Parts

Variable hoisting is a lie. The `this` keyword is simple. Learn the real mechanics behind JavaScript's most confusing features.

JavaScript the Grumpy Parts
#1about 3 minutes

The origin and design philosophy of JavaScript

JavaScript was created in 10 days with a core design goal of keeping code running, which explains why early bugs and quirks were never fixed.

#2about 5 minutes

Understanding JavaScript's forgiving nature and its quirks

JavaScript's design prioritizes keeping code running, leading to features like automatic semicolon insertion and strange behaviors like `typeof null` returning 'object'.

#3about 4 minutes

How the two-pass compiler enables variable hoisting

JavaScript's two-pass compiler first allocates memory for variables and then executes code, which explains why variables can be accessed before their declaration.

#4about 11 minutes

Variable scope examples and global scope pollution

Failing to declare variables with `var` can cause them to be implicitly created on the global scope, leading to unintended side effects and bugs.

#5about 12 minutes

Understanding block scope with `let` and `const`

ES6 keywords `let` and `const` introduce block-level scope, which prevents variables from leaking and helps avoid common bugs found with function-scoped `var`.

#6about 6 minutes

The `this` keyword as the thing to the left of the dot

The value of `this` is determined by the execution context, or 'the thing to the left of the dot', which can cause unexpected behavior inside callbacks like `setTimeout`.

#7about 6 minutes

Explicitly setting `this` with `call` and `bind`

Use `call` to invoke a function with a specific `this` context immediately, or use `bind` to create a new function with a permanently bound `this` value.

#8about 6 minutes

How arrow functions provide lexical `this` binding

Arrow functions capture the `this` value from their surrounding lexical context at creation time, which solves common callback issues but also means their `this` cannot be rebound.

#9about 6 minutes

Visualizing the JavaScript event loop and call stack

JavaScript uses a single-threaded event loop with a call stack and a callback queue to handle asynchronous operations without blocking the main thread.

#10about 5 minutes

Interoperability between `async/await` and promises

Because `async/await` is syntactic sugar over promises, you can seamlessly mix styles by awaiting a promise or using `.then()` on an async function's return value.

#11about 9 minutes

Q&A: Arrow functions and Node.js multithreading

The discussion covers the trade-offs of using arrow functions, which can break context in libraries like Mocha, and explores approaches to multithreading in Node.js.

Related jobs
Jobs that call for the skills explored in this talk.
Saby Company

Saby Company
Delebio, Italy

Junior
Java
Node.js

Featured Partners

Related Articles

View all articles
CH
Chris Heilmann
Dev Digest 136 - No JS(on) of mine
News and ArticlesDouglas Crockford is our featured video, so let's talk about evolving JavaScript and all things JSON. Judicious JSON explains all the weird things in it, you can learn why it can be incredibly slow, people wonder what even is a JSON ...
Dev Digest 136 - No JS(on) of mine
CH
Chris Heilmann
All the videos of Halfstack London 2024!
Last month was Halfstack London, a conference about the web, JavaScript and half a dozen other things. We were there to deliver a talk, but also to record all the sessions and we're happy to share them with you. It took a bit as we had to wait for th...
All the videos of Halfstack London 2024!
CH
Chris Heilmann
Dev Digest 138 - Are you secure about this?
Hello there! This is the 2nd "out of the can" edition of 3 as I am on vacation in Greece eating lovely things on the beach. So, fewer news, but lots of great resources. Many around the topic of security. Enjoy! News and ArticlesGoogle Pixel phones t...
Dev Digest 138 - Are you secure about this?
CH
Chris Heilmann
Dev Digest 111 - npm i -g issues
In last Friday's Dev Digest we looked at some global tech issues, took a deep dive into code assistants, we have a great video about NPM security and want you to tell us your favourite code questions to use in CODE100. News and ArticlesLet's start th...
Dev Digest 111 - npm i -g issues

From learning to earning

Jobs that call for the skills explored in this talk.

Code cleaner

Cleanup Services
Rome, Italy

Remote
45-50K
Intermediate
PHP
JavaScript