What Is JavaScript? Why JavaScript?
What Is JavaScript? Why JavaScript?
~10 Min. Lesezeit Zuletzt aktualisiert am August 8, 2026
Welcome to a complete JavaScript tutorial! This series is the natural prerequisite to our "TypeScript: The Complete Tutorial", which already assumed JavaScript basics (variables, functions, arrays, objects, if/for). Here we cover exactly that: every important JavaScript feature, from absolute basics to closures, prototypes, and async/await, built around its own, continuous example app.
What is JavaScript?
JavaScript is a dynamically typed, interpreted programming language, originally created in 1995 by Brendan Eich in just 10 days for the Netscape browser, to make web pages interactive. Today, JavaScript is the only programming language that runs NATIVELY in every web browser – and thanks to Node.js (since 2009), also outside the browser: on servers, in command-line tools, even on microcontrollers.
Two runtimes: browser vs. Node.js
JavaScript CODE is the same everywhere – the LANGUAGE doesn't change. What differs is the runtime environment that executes the code and provides it with additional APIs:
| Environment | What it provides |
|---|---|
| Browser | Provides DOM APIs (document, window) to manipulate web pages. No direct filesystem access, for security reasons. |
| Node.js | Provides server/system APIs (fs for files, process, networking modules). No document, no window – there simply is no web page. |
This tutorial uses Node.js EXCLUSIVELY: we build a plain command-line program, with no browser, no DOM, no HTML. The reason is the same as in the TypeScript tutorial: you should be able to focus on the LANGUAGE, without being distracted by browser- or framework-specific concepts.
Interpreted, not compiled – with one important nuance
Unlike, say, Java or C#, JavaScript code isn't compiled ahead of time into machine code that you then distribute. Instead, the JavaScript engine (e.g. Google's V8, which powers both Chrome and Node.js) reads the source text and runs it directly. In practice, V8 even optimizes "hot" code into real machine code at runtime (just-in-time compilation) – but as developers, that stays invisible to us: we write a .js file and run it directly, with no separate compile step.
// No compilation needed - directly runnable:
console.log('Hello, JavaScript!');
// Terminal:
// $ node hello.js
// Hello, JavaScript!Dynamically typed: variables have no fixed type
A key trait that sets JavaScript apart from TypeScript: a variable is NOT bound to a specific type – the same variable name can hold a number, then a string, then an object, one after another. The type is only determined at RUNTIME based on the current value, not checked ahead of time:
let value = 42; // value is now a number
value = 'forty-two'; // value is now a string - no error!
value = { number: 42 }; // value is now an object - also no error!This makes JavaScript very flexible and fast to prototype with – but it's also the source of the exact error class that TypeScript (which we cover in the follow-up series) closes off deliberately: a typo or a wrong assumption about a value's current type often only surfaces at runtime in plain JavaScript, sometimes only once a customer hits it.
Tipp: That's not a reason to avoid JavaScript – it's a reason to understand JavaScript WELL: anyone who truly grasps the language and its quirks (type coercion, this, prototypes) writes robust code even without TypeScript. And that deep understanding is exactly this series' goal.
This series' example project: a household budget tracker
Together, we'll build a household budget app – a plain command-line program in Node.js that lets you record income and expenses, break them down by category, and persist them permanently. Deliberately a different topic than the TypeScript tutorial's "library-app", so you're not just seeing the same material again. From the first console.log to asynchronous file access with async/await, this one project grows with you, chapter by chapter.
What this series does NOT cover
- No browser/DOM: no web page manipulation, no HTML/CSS – separate tutorials cover that.
- No framework: no React, no Express – plain "vanilla" JavaScript in Node.js.
- No TypeScript: no type annotations – the follow-up to this is our separate "TypeScript: The Complete Tutorial", which picks up right where this series ends.
Tipp: Prerequisite: none needed! This series starts at absolute basics. It's the ideal starting point if you plan to continue with "TypeScript: The Complete Tutorial" afterwards.