> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baenninger.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Variablen und Werte

## Werte

Ein Wert ist ein Stück aus Daten. Es ist die grundlegendste Informationseinheit, die wir beim Programmieren haben. Zum Beispiel sind

```javascript theme={null}
'Jonas'
210
3.141
```

alles Werte. Wie Sie sehen, haben sie alle unterschiedliche [Datentypen](/web/javascript/grundlagen/datentypen), sodass sie etwas anderes darstellen. `"Jonas"` zum Beispiel ist ein String.

## Variablen

Aber das allein nützt uns nichts, weil wir es nirgendwo speichern. Dieses Problem wird mit Variablen gelöst, in denen wir einen Wert speichern, sodass wir ihn immer wieder verwenden können. Variablen werden mit einem von drei Schlüsselwörtern erstellt: `let`, `const` oder `var`. Letzteres wird heutzutage nicht mehr verwendet, es ist alt und nur noch für Legacy-Code da, aber es hat einige besondere Eigenschaften.

```javascript theme={null}
let firstName = 'Jonas';
```

Was wir hier getan haben, nennt man eine Variable deklarieren. Wenn wir nun den Wert verwenden wollen, referenzieren wir den Variablennamen

```javascript theme={null}
console.log(firstName); // Jonas
```

Dies ist äusserst nützlich, wenn der Name in mehreren Fällen verwendet wird und wir ihn ändern wollen. Ohne Variablen müssten wir den alten Namen durch den neuen ersetzen, aber mit der Variable müssen wir ihn nur einmal ersetzen:

```javascript theme={null}
let firstName = 'Matilda';
console.log(firstName); // Matilda
console.log(firstName); // Matilda
console.log(firstName); // Matilda
```

## `let`, `const` und `var`

Wir benutzen `let`, um eine Variable zu deklarieren, die später geändert werden kann:

```javascript theme={null}
let age = 30;
age = 31;
```

Dieser Vorgang wird Neuzuweisung eines Wertes an eine Variable oder Mutation der Variable `age` genannt.

***

Wir benutzen `const`, um eine Variable zu deklarieren, die später nicht mehr geändert werden kann:

```javascript theme={null}
const birthYear = 1991;
birthYear = 1990;
```

Da wir die Variable nicht mutieren können, müssen wir ihr direkt einen Wert zuweisen, zum Beispiel

```javascript theme={null}
const birthYear;
```

ist illegal, weil es nie einen Wert erhalten wird.

***

`var` ist die alte Art, eine Variable zu deklarieren, auf den ersten Blick sieht es so aus, als wäre es das gleiche wie `let`:

```javascript theme={null}
var job = 'Programmierer';
job = 'Lehrer';
```

Es gibt jedoch einige wesentliche Unterschiede zwischen `let` und `var`, auf die wir in späteren Abschnitten eingehen werden.

<Warning>
  Wenn du nicht weisst, was du tust, nutze **niemals** `var`!
</Warning>
