Rob Richardson
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.
Hubert Burda Media
München, Germany
€80-95K
Intermediate
Senior
JavaScript
Node.js
+1
Matching moments
02:33 MIN
Why you might not need JavaScript for everything
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
08:07 MIN
Exploring modern JavaScript performance and new CSS features
WeAreDevelopers LIVE – AI, Freelancing, Keeping Up with Tech and More
03:31 MIN
The value of progressive enhancement and semantic HTML
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
11:32 MIN
The industry's focus on frameworks over web fundamentals
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
02:49 MIN
Using AI to overcome challenges in systems programming
AI in the Open and in Browsers - Tarek Ziadé
11:10 MIN
The only frontend stack that truly matters
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
09:00 MIN
Navigating the growing complexity of modern CSS
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
06:47 MIN
Solving date and time issues with the Temporal API
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
Featured Partners
Related Videos
Best of the Worst – the most awful anti-features in JavaScript, ranked!
Peter Kröner
The Lean Web
Chris Ferdinandi
The Eventloop in JavaScript - How does it work?
Christian Woerz
The year 3000, a brief history of Web Development
Lorenzo Pieri
10 must-know design patterns for JS Devs
Erick Wendel
Things I learned while writing high-performance JavaScript applications
Michele Riva
Catching up on the basics you don't really need that much code
Chris Heilmann
Oh CommonJS! Why are you mESMing with me?
John Nguyen
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.

Visonum GmbH
Remote
Junior
Intermediate
React
Redux
TypeScript



Rithum
Remote
Intermediate
API
GIT
Azure
NoSQL
+19




Nexus
Charing Cross, United Kingdom
Docker
Node.js
Jasmine
JavaScript
Kubernetes
+6

Amaris Consulting
Geneva, Switzerland
Intermediate
.NET
MySQL
React
ASP.NET
Node.js
+3