JavaScript and TypeScript, from Script to Application
A complete course in modern JavaScript and TypeScript: the runtime model, collections, closures, modules, promises, the type system, and building a real application.
- Modules
- 06
- Lessons
- 18
- Reading time
- 10H 15M
- Words
- 33,019
What you will be able to do
- Explain what the event loop does with your code and why order surprises happen.
- Use arrays, objects, Map, Set and iterators for what each is actually good at.
- Write closures and modules that do not leak state into the global scope.
- Handle asynchronous failure without losing the error.
- Type a real codebase with generics and narrowing instead of casting away the problem.
- Build, test and ship a browser application with a bundler.
Before you start
Some experience writing any programming language, and a working Node.js installation. No prior JavaScript required.
JavaScript is the only language most developers are forced to use before they have been taught it. You copy a snippet, it works, and you move on with a mental model that is wrong in three places. The bill for that arrives later, usually as a bug that only happens in production, or as a runtime error nobody can reproduce.
This course rebuilds the model properly. It starts with what the runtime does to your file before your first line runs, because evaluation order explains a whole family of confusing bugs. It then works through collections, closures and modules, spends a full module on asynchrony because that is where the real damage happens, and moves into TypeScript as a tool for finding mistakes rather than as a syntax to satisfy.
The last module builds an actual application with no framework: state, rendering, tests and a production bundle. Frameworks are much easier to learn once you have written the thing a framework is a shortcut for.
Curriculum
6 modules, 18 lessons
The language and the runtime
Values, coercion, scope, hoisting, and what the event loop is doing while you wait.
3 lessons · 1H 20M
Collections and iteration
Arrays, objects, Map, Set, spread, destructuring, iterators and generators.
3 lessons · 1H 20M
Functions, closures and modules
Function forms, this, closures, ES modules, npm and dependency hygiene.
3 lessons · 1H 35M
Asynchrony
Callbacks to promises to async and await, error propagation, cancellation and fetch.
3 lessons · 1H 45M
TypeScript
Structural typing, narrowing, generics, utility types and a tsconfig that catches real mistakes.
3 lessons · 1H 45M
Building an application
The DOM, state without a framework, testing, bundling, and deploying the result.
3 lessons · 2H 30M
Go deeper