JavaScript Foundations
A calm tour of the language behind every website. We stay in the browser console for the first hour, then build small pieces of real behaviour: a fetch that handles failure, a debounce you understand line by line, and modules that keep a project tidy.
The route
- 40 minValues, and the console as a lab
Primitives and objects, and how to interrogate anything before writing a line.
You board here - 40 minFunctions, scope and closures
What a closure is once you stop being frightened of the word, and where it shows up.
- 40 minThe methods worth memorising
map, filter and reduce, destructuring and spread — including when each is the wrong choice.
- 40 minAsync, honestly
The event loop, promises and async/await, and what happens to errors in each.
- 30 minModules and a project that stays tidy
Imports, exports, and how to split a file before it becomes a problem.
A look at the teaching
A fetch that handles failure, written once, properly.
async function getCourse(id) {
const res = await fetch(`/api/courses/${id}`);
// fetch only rejects on network failure — a 404 or a 500
// is a perfectly successful promise with a sad status.
if (!res.ok) {
throw new Error(`Course ${id}: ${res.status}`);
}
return res.json();
}
The line everyone forgets is the ok check. fetch resolves for a 500, so a missing check turns a server error into a confusing parse error three frames away.
Who is driving
Nóra teaches the way a good colleague explains things at a whiteboard — no jargon for its own sake, and nothing hidden behind “as you can see”.
Placeholder profile