You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A variable in JavaScript can contain any data. A variable can at one moment be a string and at another be a number:
3
+
Eine Variable in JavaScript kann beliebige Daten enthalten. Eine Variable kann in einem Moment eine Zeichenkette und in einem anderen eine Zahl sein:
4
4
5
5
```js
6
-
//no error
7
-
let message ="hello";
6
+
//kein Fehler
7
+
let message ="Hallo";
8
8
message =123456;
9
9
```
10
10
11
-
Programming languages that allow such things are called "dynamically typed", meaning that there are data types, but variables are not bound to any of them.
11
+
Programmiersprachen, die solche Dinge erlauben, werden als "dynamisch typisiert" bezeichnet, was bedeutet, dass es Datentypen gibt, aber Variablen an keine von ihnen gebunden sind.
12
12
13
-
There are eight basic data types in JavaScript. Here, we'll cover them in general and in the next chapters we'll talk about each of them in detail.
13
+
Es gibt acht grundlegende Datentypen in JavaScript. Hier werden wir sie allgemein behandeln und in den nächsten Kapiteln detailliert auf sie eingehen.
14
14
15
15
## Number
16
16
@@ -19,167 +19,167 @@ let n = 123;
19
19
n =12.345;
20
20
```
21
21
22
-
The *number*type represents both integer and floating point numbers.
22
+
Der Typ *number*repräsentiert sowohl Ganzzahl, als auch Gleitkommazahlen.
23
23
24
-
There are many operations for numbers, e.g. multiplication`*`, division`/`, addition`+`, subtraction`-`, and so on.
24
+
Es gibt viele Operationen für Zahlen, z.B. Multiplikation`*`, Division`/`, Addition`+`, Subtraktion`-` und so weiter.
25
25
26
-
Besides regular numbers, there are so-called "special numeric values" which also belong to this data type: `Infinity`, `-Infinity`and`NaN`.
26
+
Neben regulären Zahlen gibt es sogenannte "numerische Sonderwerte", die ebenfalls zu diesem Datentyp gehören: `Infinity`, `-Infinity`und`NaN`.
27
27
28
-
-`Infinity`represents the mathematical [Infinity](https://en.wikipedia.org/wiki/Infinity) ∞. It is a special value that's greater than any number.
28
+
-`Infinity`repräsentiert die mathematische [Unendlichkeit](https://de.wikipedia.org/wiki/Unendlichkeit) ∞. Es ist ein spezieller Wert, der größer als jede Zahl ist.
29
29
30
-
We can get it as a result of division by zero:
30
+
Wir können es als Ergebnis der Division durch Null erhalten:
31
31
32
32
```js run
33
33
alert( 1/0 ); // Infinity
34
34
```
35
35
36
-
Or just reference it directly:
36
+
Oder verweise einfach direkt darauf:
37
37
38
38
```js run
39
39
alert( Infinity ); // Infinity
40
40
```
41
-
-`NaN`represents a computational error. It is a result of an incorrect or an undefined mathematical operation, for instance:
41
+
-`NaN`repräsentiert einen Rechenfehler. Es ist das Ergebnis einer falschen oder undefinierten mathematischen Operation, zum Beispiel:
42
42
43
43
```js run
44
-
alert( "not a number" / 2 ); // NaN, such division is erroneous
44
+
alert( "keine Zahl" / 2 ); // NaN, eine solche Teilung ist falsch
45
45
```
46
46
47
-
`NaN`is sticky. Any further operation on`NaN`returns `NaN`:
47
+
`NaN`ist starr. Jede weitere Operation an`NaN`gibt`NaN` zurück:
48
48
49
49
```js run
50
-
alert( "not a number" / 2 + 5 ); // NaN
50
+
alert( "keine Zahl" / 2 + 5 ); // NaN
51
51
```
52
52
53
-
So, if there's a `NaN` somewhere in a mathematical expression, it propagates to the whole result.
53
+
Wenn sich also irgendwo in einem mathematischen Ausdruck ein `NaN` befindet, wird es zum gesamten Ergebnis weitergegeben.
54
54
55
-
```smart header="Mathematical operations are safe"
56
-
Doing maths is "safe" in JavaScript. We can do anything: divide by zero, treat non-numeric strings as numbers, etc.
55
+
```smart header="Mathematische Operationen sind sicher"
56
+
Mathematik ist in JavaScript "sicher". Wir können alles tun: durch Null dividieren, nicht numerische Zeichenfolgen als Zahlen behandeln usw.
57
57
58
-
The script will never stop with a fatal error ("die"). At worst, we'll get `NaN` as the result.
58
+
Das Skript wird niemals mit einem schwerwiegenden Fehler ("Programmabbruch") beendet. Im schlimmsten Fall erhalten wir als Ergebnis `NaN`.
59
59
```
60
60
61
-
Special numeric values formally belong to the "number" type. Of course they are not numbers in the common sense of this word.
61
+
Spezielle numerische Werte gehören formal zum Typ"number". Natürlich sind sie keine Zahlen im üblichen Sinne.
62
62
63
-
We'll see more about working with numbers in the chapter<info:number>.
63
+
Mehr über das Arbeiten mit Zahlen erfahren wir indiesem Kapitel<info:number>.
64
64
65
65
## BigInt
66
66
67
-
In JavaScript, the "number" type cannot represent integer values larger than <code>2<sup>53</sup></code> (or less than <code>-2<sup>53</sup></code> for negatives), that's a technical limitation caused by their internal representation. That's about 16 decimal digits, so for most purposes the limitation isn't a problem, but sometimes we need really big numbers, e.g. for cryptography or microsecond-precision timestamps.
67
+
In JavaScript kann der Typ "number"keine Ganzzahlwerte darstellen, die größer als <code>2<sup>53</sup></code> (oder kleiner als<code>-2<sup>53</sup></code>für Negative), sind. Das ist eine technische Einschränkung, die durch ihre interne Darstellung verursacht wird. Das sind ungefähr 16Dezimalstellen, daher ist die Beschränkung für die meisten Zwecke kein Problem, aber manchmal benötigen wir wirklich große Zahlen, z.B. für Verschlüsselungen oder Zeitstempel mit Mikrosekundengenauigkeit.
68
68
69
-
`BigInt`type was recently added to the language to represent integers of arbitrary length.
69
+
Der Typ `BigInt`wurde kürzlich der Sprache hinzugefügt, um Ganzzahlen beliebiger Länge darzustellen.
70
70
71
-
A`BigInt`is created by appending`n`to the end of an integer literal:
71
+
Ein`BigInt`wird durch Anhängen von`n`an das Ende einer Ganzzahl erstellt:
72
72
73
73
```js
74
-
//the "n" at the end means it's a BigInt
74
+
// Das "n" am Ende bedeutet, dass es ein BigInt ist
As`BigInt` numbers are rarely needed, we devoted them a separate chapter<info:bigint>.
78
+
Da`BigInt`-Zahlen selten benötigt werden, haben wir ihnen ein eigenes Kapitel gewidmet<info:bigint>.
79
79
80
-
```smart header="Compatability issues"
81
-
Right now `BigInt` is supported in Firefox and Chrome, but not in Safari/IE/Edge.
80
+
```smart header="Kompatibilitätsprobleme"
81
+
Derzeit wird`BigInt` in Firefox und Chrome unterstützt, nicht jedoch in Safari/IE/Edge.
82
82
```
83
83
84
84
## String
85
85
86
-
A string in JavaScript must be surrounded by quotes.
86
+
Ein Stringin JavaScript muss in Anführungszeichen gesetzt werden.
87
87
88
88
```js
89
-
let str ="Hello";
90
-
let str2 ='Single quotes are ok too';
91
-
let phrase =`can embed another${str}`;
89
+
let str = "Hallo";
90
+
let str2 = 'Einfache Anführungszeichen sind auch in Ordnung';
91
+
let phrase = `kann einen anderen ${str} einbetten`;
92
92
```
93
93
94
-
In JavaScript, there are 3 types of quotes.
94
+
In JavaScript gibt es drei Arten von Anführungszeichen.
95
95
96
-
1.Double quotes: `"Hello"`.
97
-
2.Single quotes: `'Hello'`.
98
-
3. Backticks: <code>`Hello`</code>.
96
+
1.Doppelte Anführungszeichen:`"Hallo"`.
97
+
2.Einfache Anführungszeichen:`'Hallo'`.
98
+
3. Backticks:<code>`Hallo`</code>.
99
99
100
-
Double and single quotes are "simple" quotes. There's practically no difference between them in JavaScript.
100
+
Doppelte und einfache Anführungszeichen sind"simple"Anführungszeichen. In JavaScript gibt es praktisch keinen Unterschied zwischen ihnen.
101
101
102
-
Backticks are "extended functionality" quotes. They allow us to embed variables and expressions into a string by wrapping them in `${…}`, for example:
102
+
Backticks sind Anführungszeichen mit "erweiterter Funktionalität". Sie ermöglichen es uns, Variablen und Ausdrücke in einen String einzubetten, indem wir siein`${…}` einschließen, zum Beispiel:
103
103
104
104
```js run
105
105
let name = "John";
106
106
107
-
//embed a variable
108
-
alert( `Hello, *!*${name}*/!*!` ); //Hello, John!
107
+
// Einbetten einer Variable
108
+
alert( `Hallo, *!*${name}*/!*!` ); //Hallo, John!
109
109
110
-
//embed an expression
111
-
alert( `the result is *!*${1+2}*/!*` ); //the result is 3
110
+
//Einbetten eines Ausdrucks
111
+
alert( `Das Ergebnis ist *!*${1+2}*/!*` ); //Das Ergebnis ist 3
112
112
```
113
113
114
-
The expression inside`${…}`is evaluated and the result becomes a part of the string. We can put anything in there: a variable like`name`or an arithmetical expression like`1 + 2`or something more complex.
114
+
Der Ausdruck in`${…}`wird ausgewertet und das Ergebnis wird Teil des Strings. Wir können alles hineinstecken: eine Variable wie`name`oder einen arithmetischen Ausdruck wie`1 + 2`oder etwas komplexeres.
115
115
116
-
Please note that this can only be done in backticks. Other quotes don't have this embedding functionality!
116
+
Bitte beachte, dass dies nur bei Backticks möglich ist. Andere Anführungszeichen haben diese Einbettungsfunktion nicht!
117
117
```js run
118
118
alert( "the result is ${1 + 2}" ); // the result is ${1 + 2} (double quotes do nothing)
119
119
```
120
120
121
-
We'll cover strings more thoroughly in the chapter<info:string>.
121
+
In diesem Kapitel werden wir uns eingehender mit Strings befassen<info:string>.
122
122
123
-
```smart header="There is no *character* type."
124
-
In some languages, there is a special "character" type for a single character. For example, in the C language and in Java it is called "char".
123
+
```smart header="Es gibt keinen *Zeichen*-Typ."
124
+
In einigen Sprachen gibt es einen speziellen "Zeichen"-Typ für ein einzelnes Zeichen. In der C-Sprache und in Java heißt er beispielsweise "char".
125
125
126
-
In JavaScript, there is no such type. There's only one type: `string`. A string may consist of only one character or many of them.
126
+
In JavaScript gibt es so einen Typ nicht. Es gibt nur einen Typ: `string`. Eine Zeichenfolge kann aus nur einem oder mehreren Zeichen bestehen.
127
127
```
128
128
129
-
## Boolean (logical type)
129
+
## Boolean (logische Werte)
130
130
131
-
The boolean type has only two values: `true`and`false`.
131
+
Ein Boolean hat nur zwei Werte: `true`und`false`.
132
132
133
-
This type is commonly used to store yes/no values: `true`means "yes, correct", and`false`means "no, incorrect".
133
+
Dieser Typ wird häufig zum Speichern von Ja/Nein-Werten verwendet: `true`bedeutet "ja, richtig" und`false`bedeutet "nein, falsch".
134
134
135
-
For instance:
135
+
Zum Beispiel:
136
136
137
137
```js
138
-
let nameFieldChecked =true; //yes, name field is checked
139
-
let ageFieldChecked =false; //no, age field is not checked
138
+
let nameFieldChecked =true; //ja, Feld (Name) ist markiert
139
+
let ageFieldChecked =false; //nein, Feld (Alter) ist nicht markiert
140
140
```
141
141
142
-
Boolean values also come as a result of comparisons:
142
+
Boolesche Werte ergeben sich auch aus Vergleichen:
143
143
144
144
```js run
145
145
let isGreater =4>1;
146
146
147
-
alert( isGreater ); // true (the comparison result is "yes")
147
+
alert( isGreater ); // true (das Vergleichsergebnis ist "richtig")
148
148
```
149
149
150
-
We'll cover booleans more deeply in the chapter <info:logical-operators>.
150
+
Wir werden uns im Kapitel <info:logical-operators> eingehender mit loglischen Werten befassen.
151
151
152
-
## The "null" value
152
+
## Der Wert "null"
153
153
154
-
The special`null` value does not belong to any of the types described above.
154
+
Der spezielle`null`-Wert gehört zu keinem der oben beschriebenen Typen.
155
155
156
-
It forms a separate type of its own which contains only the `null`value:
156
+
Er bildet einen eigenen Typ, der nur den Wert `null`enthält:
157
157
158
158
```js
159
159
let age =null;
160
160
```
161
161
162
-
In JavaScript, `null`is not a "reference to a non-existing object" or a "null pointer" like in some other languages.
162
+
In JavaScript ist `null`kein "Verweis auf ein nicht vorhandenes Objekt" oder ein "Nullzeiger" wie in einigen anderen Sprachen.
163
163
164
-
It's just a special value which represents "nothing", "empty" or "value unknown".
164
+
Es ist nur ein spezieller Wert, der "nichts", "leer" oder "Wert unbekannt" darstellt.
165
165
166
-
The code above states that`age`is unknown or empty for some reason.
166
+
Der obige Code besagt, dass`age`aus irgendeinem Grund unbekannt oder leer ist.
167
167
168
-
## The "undefined" value
168
+
## Der Wert "undefined"
169
169
170
-
The special value`undefined`also stands apart. It makes a type of its own, just like`null`.
170
+
Der spezielle Wert`undefined`steht ebenfalls abseits. Er bildet einen eigenen Typ, genau wie`null`.
171
171
172
-
The meaning of`undefined`is "value is not assigned".
172
+
Die Bedeutung von`undefined`ist "Wert ist nicht zugewiesen".
173
173
174
-
If a variable is declared, but not assigned, then its value is`undefined`:
174
+
Wenn eine Variable deklariert, aber nicht zugewiesen ist, ist ihr Wert`undefined`:
175
175
176
176
```js run
177
177
let x;
178
178
179
-
alert(x); //shows "undefined"
179
+
alert(x); //zeigt "undefined"
180
180
```
181
181
182
-
Technically, it is possible to assign `undefined`to any variable:
182
+
Technisch gesehen ist es möglich, jeder Variablen ein `undefined`zuzuweisen:
183
183
184
184
```js run
185
185
let x =123;
@@ -189,28 +189,28 @@ x = undefined;
189
189
alert(x); // "undefined"
190
190
```
191
191
192
-
...But we don't recommend doing that. Normally, we use`null` to assign an "empty" or "unknown" value to a variable, and we use `undefined` for checks like seeing if a variable has been assigned.
192
+
...Aber wir empfehlen das nicht. Normalerweise verwenden wir`null`, um einer Variablen einen "leeren" oder "unbekannten" Wert zuzuweisen, und `undefined`, um zu überprüfen, ob eine Variable zugewiesen wurde.
193
193
194
-
## Objects and Symbols
194
+
## Objekte und Symbole
195
195
196
-
The `object`type is special.
196
+
Der Typ `object`ist etwas Besonderes.
197
197
198
-
All other types are called "primitive" because their values can contain only a single thing (be it a string or a number or whatever). In contrast, objects are used to store collections of data and more complex entities. We'll deal with them later in the chapter <info:object>after we learn more about primitives.
198
+
Alle anderen Typen werden als "primitive" (skalare) Datentypen bezeichnet, da ihre Werte nur ein einzelnes Element enthalten können (sei es eine Zeichenfolge oder eine Zahl oder was auch immer). Im Gegensatz dazu werden Objekte zum Speichern von Datensammlungen und komplexeren Einheiten verwendet. Wir werden später im Kapitel <info:object>darauf eingehen, nachdem wir mehr über skalare Datentypen erfahren haben.
199
199
200
-
The `symbol`type is used to create unique identifiers for objects. We mention it here for completeness, but we'll study it after objects.
200
+
Der Typ `symbol`wird verwendet, um eindeutige Bezeichner für Objekte zu erstellen. Der Vollständigkeit halber erwähnen wir es hier, aber wir werden ihn nach den Objekten untersuchen.
201
201
202
-
## The typeof operator[#type-typeof]
202
+
## Der Operator typeof[#type-typeof]
203
203
204
-
The `typeof`operator returns the type of the argument. It's useful when we want to process values of different types differently or just want to do a quick check.
204
+
Der Operator `typeof`gibt den Typ des Arguments zurück. Dies ist nützlich, wenn wir Werte verschiedener Typen unterschiedlich verarbeiten oder nur eine schnelle Überprüfung durchführen möchten.
205
205
206
-
It supports two forms of syntax:
206
+
Es werden zwei Syntaxformen unterstützt:
207
207
208
-
1.As an operator: `typeof x`.
209
-
2.As a function: `typeof(x)`.
208
+
1.Als Operator: `typeof x`.
209
+
2.Als Funktion: `typeof(x)`.
210
210
211
-
In other words, it works with parentheses or without them. The result is the same.
211
+
Mit anderen Worten, es funktioniert mit oder ohne Klammern. Das Ergebnis ist das Gleiche.
212
212
213
-
The call to`typeof x`returns a string with the type name:
213
+
Der Aufruf von`typeof x`gibt einen String mit dem Typ zurück:
The last three lines may need additional explanation:
241
+
Die letzten drei Zeilen bedürfen möglicherweise einer zusätzlichen Erläuterung:
242
242
243
-
1.`Math`is a built-in object that provides mathematical operations. We will learn it in the chapter <info:number>. Here, it serves just as an example of an object.
244
-
2.The result of`typeof null`is`"object"`. That's wrong. It is an officially recognized error in `typeof`, kept for compatibility. Of course,`null`is not an object. It is a special value with a separate type of its own. So, again, this is an error in the language.
245
-
3.The result of`typeof alert`is`"function"`, because`alert`is a function. We'll study functions in the next chapters where we'll also see that there's no special "function" type in JavaScript. Functions belong to the object type. But`typeof`treats them differently, returning `"function"`. That's not quite correct, but very convenient in practice.
243
+
1.`Math`ist ein eingebautes Objekt, das mathematische Operationen liefert. Wir werden es im Kapitel <info:number> lernen. Hier dient es nur als Beispiel für ein Objekt.
244
+
2.Das Ergebnis von`typeof null`ist`"object"`. Das ist falsch. Es ist ein offiziell anerkannter Fehler, der aus Kompatibilitätsgründen erhalten wurde. Natürlich ist`null`kein Objekt. Es ist ein besonderer Wert mit einem eigenen Typ. Also, nochmal, es ist ein Fehler der Sprache.
245
+
3.Das Ergebnis von`typeof alert`ist`"function"`, da`alert`eine Funktion ist. Wir werden Funktionen in den nächsten Kapiteln untersuchen, in denen wir auch feststellen werden, dass es in JavaScript keinen speziellen "Funktionstyp" gibt. Funktionen gehören zum Objekttyp. Aber`typeof`behandelt sie anders und gibt `"function"` zurück. Das ist nicht ganz richtig, aber in der Praxis sehr nützlich.
246
246
247
-
## Summary
247
+
## Zusammenfassung
248
248
249
-
There are 8 basic data types in JavaScript.
249
+
Es gibt 8 grundlegende Datentypen in JavaScript.
250
250
251
-
-`number`for numbers of any kind: integer or floating-point, integers are limited by ±2<sup>53</sup>.
252
-
-`bigint`is for integer numbers of arbitrary length.
253
-
-`string`for strings. A string may have one or more characters, there's no separate single-character type.
254
-
-`boolean`for`true`/`false`.
255
-
-`null`for unknown values -- a standalone type that has a single value`null`.
256
-
-`undefined`for unassigned values -- a standalone type that has a single value`undefined`.
257
-
-`object`for more complex data structures.
258
-
-`symbol`for unique identifiers.
251
+
-`number`für Zahlen jeglicher Art: Ganzzahl oder Gleitkommazahl, ganze Zahlen werden begrenzt durch ±2<sup>53</sup>.
252
+
-`bigint`steht für ganzzahlige Zahlen beliebiger Länge.
253
+
-`string`für Zeichenketten. Eine String kann aus einem oder mehreren Zeichen bestehen. Es gibt keine separaten Einzelzeichen.
254
+
-`boolean`für`true`/`false`.
255
+
-`null`für unbekannte Werte -- ein eigenständiger Typ mit einem einzelnen Wert`null`.
256
+
-`undefined`für nicht zugewiesene Werte -- ein eigenständiger Typ mit einem einzelnen Wert`undefined`.
257
+
-`object`für komplexere Datenstrukturen.
258
+
-`symbol`für eindeutige Kennungen.
259
259
260
-
The `typeof`operator allows us to see which type is stored in a variable.
260
+
Mit dem Operator `typeof`können wir sehen, welcher Typ in einer Variablen gespeichert ist.
261
261
262
-
-Two forms: `typeof x`or`typeof(x)`.
263
-
-Returns a string with the name of the type, like`"string"`.
264
-
-For`null`returns `"object"` -- this is an error in the language, it's not actually an object.
262
+
-Zwei Formen: `typeof x`oder`typeof(x)`.
263
+
-Gibt einen String mit dem Namen des Typs zurück, wie`"string"`.
264
+
-Für`null`gibt es `"object"`zurück -- dies ist ein Fehler in der Sprache, es ist eigentlich kein Objekt.
265
265
266
-
In the next chapters, we'll concentrate on primitive values and once we're familiar with them, we'll move on to objects.
266
+
In den nächsten Kapiteln werden wir uns auf skalare Datentypen konzentrieren und, sobald wir mit ihnen vertraut sind, zu Objekten übergehen.
0 commit comments