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
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/03-strict-mode/article.md
+12-48Lines changed: 12 additions & 48 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,12 +19,7 @@ Beispielsweise:
19
19
...
20
20
```
21
21
22
-
<<<<<<< HEAD
23
-
Wir werden bald Funktionen (eine Möglichkeit, Befehle zu gruppieren) lernen. Mit Blick auf die Zukunft sei angemerkt, dass `"use strict"` anstelle des gesamten Skripts am Anfang des Funktionskörpers stehen kann. Auf diese Weise wird der strikte Modus nur in dieser Funktion aktiviert. Normalerweise wird es jedoch für das gesamte Skript verwendet.
24
-
25
-
=======
26
-
Quite soon we're going to learn functions (a way to group commands), so let's note in advance that `"use strict"` can be put at the beginning of a function. Doing that enables strict mode in that function only. But usually people use it for the whole script.
27
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
22
+
Bald werden wir Funktionen kennenlernen (eine Möglichkeit, Anweisungen zu gruppieren), also, so viel sei verraten, `"use strict"` kann an den Anfang einer Funktion gestellt werden. Auf diese Weise wird der strikte Modus nur in dieser Funktion aktiviert. Normalerweise wird er aber für das ganze Skript verwendet.
28
23
29
24
````warn header="Stellen sicher, dass \"use strict\" am Anfang steht"
30
25
Stelle sicher, dass `"use strict"` am Anfang deiner Skripte steht, da sonst der strikte Modus möglicherweise nicht aktiv ist.
@@ -51,21 +46,13 @@ Sobald wir in den strikten Modus wechseln, gibt es kein Zurück mehr.
51
46
52
47
## Browser-Konsole
53
48
54
-
<<<<<<< HEAD
55
-
Wenn du in Zukunft eine Browserkonsole zum Testen von Funktionalitäten verwendest, beachte bitte, dass `use strict` standardmäßig nicht verwendet wird.
56
-
=======
57
-
When you use a [developer console](info:devtools) to run code, please note that it doesn't `use strict` by default.
58
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
49
+
Wenn du eine [Entwicklerkonsole](info:devtools) zum Ausführen von Code verwendest, beachte bitte, dass sie standardmäßig nicht `use strict` verwendet.
59
50
60
51
Manchmal, wenn `use strict` einen Unterschied macht, erhältst du falsche Ergebnisse.
61
52
62
-
<<<<<<< HEAD
63
-
Du kannst versuchen, durch Drücken von `key:Umschalt+Eingabetaste` mehrere Zeilen einzugeben und `use strict` wie folgt an den Anfang zu setzen:
64
-
=======
65
-
So, how to actually `use strict` in the console?
53
+
Wie kann man also in der Konsole tatsächlich `use strict` verwenden?
66
54
67
-
First, you can try to press `key:Shift+Enter` to input multiple lines, and put `use strict` on top, like this:
68
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
55
+
Zuerst kannst du versuchen, mit `key:Umschalt+Eingabe` mehrere Zeilen einzugeben, und oben drauf `use strict` setzen, so wie hier:
69
56
70
57
```js
71
58
'use strict'; <Umschalt+Eingabe für eine neue Zeile>
@@ -75,51 +62,28 @@ First, you can try to press `key:Shift+Enter` to input multiple lines, and put `
75
62
76
63
Es funktioniert in den meisten Browsern, wie Firefox und Chrome.
77
64
78
-
<<<<<<< HEAD
79
-
Wenn dies nicht der Fall ist, besteht die zuverlässigste Möglichkeit, um `use strict` sicherzustellen, darin, den Code wie folgt in die Konsole einzugeben:
80
-
=======
81
-
If it doesn't, e.g. in an old browser, there's an ugly, but reliable way to ensure `use strict`. Put it inside this kind of wrapper:
82
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
65
+
Wenn das nicht der Fall ist, z.B. in einem alten Browser, gibt es einen unsauberen, aber zuverlässigen Weg, um `use strict` sicherzustellen. Ummantel es wie folgt:
83
66
84
67
```js
85
68
(function() {
86
69
'use strict';
87
70
88
-
<<<<<<<HEAD
89
-
// ...Dein Code...
90
-
})()
91
-
```
92
-
93
-
## Immer "use strict" verwenden
94
-
95
-
Wir müssen die Unterschiede zwischen dem striken Modus und dem "Standardmodus" noch behandeln.
96
-
97
-
In den nächsten Kapiteln werden wir beim Erlernen der Sprachfunktionen die Unterschiede zwischen dem Strikten und dem Standardmodus feststellen. Zum Glück gibt es nicht viele und sie verbessern unser Leben.
98
-
99
-
Im Moment genügt es, allgemein zu wissen:
100
-
101
-
1. Die Anweisung `"use strict"` schaltet die Engine in den "modernen" Modus und ändert das Verhalten einiger eingebauter Funktionen. Wir werden die Details später im Tutorial sehen.
102
-
2. Der strikte Modus wird aktiviert, indem `"use strict"` am Anfang eines Skripts oder einer Funktion platziert wird. Verschiedene Sprachfunktionen, wie "Klassen" und "Module", aktivieren den strikten Modus automatisch.
103
-
3. Der strikte Modus wird von allen modernen Browsern unterstützt.
104
-
4. Wir empfehlen, Skripte immer mit `"use strict"` zu starten. Alle Beispiele in diesen Tutorial gehen von einem strengen Modus aus, sofern nicht (sehr selten) anders angegeben.
105
-
=======
106
71
// ...your code here...
107
72
})()
108
73
```
109
74
110
75
## Should we "use strict"?
111
76
112
-
The question may sound obvious, but it's not so.
77
+
Die Frage mag offensichtlich klingen, aber dem ist nicht so.
113
78
114
-
One could recommend to start scripts with `"use strict"`... But you know what's cool?
79
+
Man könnte empfehlen, Skripte mit `"use strict"` zu beginnen... Aber weißt du, was besser ist?
115
80
116
-
Modern JavaScript supports "classes" and "modules" - advanced language structures (we'll surely get to them), that enable `use strict` automatically. So we don't need to add the `"use strict"` directive, if we use them.
81
+
Modernes JavaScript unterstützt "Klassen" und "Module" - fortgeschrittene Sprachstrukturen (zu denen wir sicher noch kommen werden), die automatisch die `use strict`Verwendung ermöglichen. Wir brauchen also nicht die `"use strict"`-Direktive hinzuzufügen, wenn wir sie verwenden.
117
82
118
-
**So, for now `"use strict";` is a welcome guest at the top of your scripts. Later, when your code is all in classes and modules, you may omit it.**
83
+
**Also, für den Moment ist `"use strict;"` ein willkommener Gast an der Spitze deiner Skripte. Später, wenn der Code nur noch aus Klassen und Modulen besteht, können wir ihn weglassen.**
119
84
120
-
As of now, we've got to know about `use strict` in general.
85
+
Ab jetzt sollten wir über `use strict`im Allgemeinen Bescheid wissen.
121
86
122
-
In the next chapters, as we learn language features, we'll see the differences between the strict and old modes. Luckily, there aren't many and they actually make our lives better.
87
+
In den nächsten Kapiteln werden wir, während wir die sprachlichen Merkmale kennen lernen, die Unterschiede zwischen dem strikten und dem herkömmlichen Modus sehen. Zum Glück gibt es nicht viele, und sie machen uns das Leben tatsächlich angenehmer.
123
88
124
-
All examples in this tutorial assume strict mode unless (very rarely) specified otherwise.
125
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
89
+
Alle Beispiele in diesem Tutorial gehen vom strikten Modus aus, sofern nicht (sehr selten) anders angegeben.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/05-types/article.md
+21-84Lines changed: 21 additions & 84 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,28 +1,18 @@
1
1
# Datentypen
2
2
3
-
<<<<<<< HEAD
4
-
Eine Variable in JavaScript kann beliebige Daten enthalten. Eine Variable kann in einem Moment eine Zeichenkette und in einem anderen eine Zahl sein:
5
-
=======
6
-
A value in JavaScript is always of a certain type. For example, a string or a number.
3
+
Ein Wert in JavaScript ist immer von einem bestimmten Typ. Zum Beispiel eine Zeichenfolge oder eine Zahl.
7
4
8
-
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.
5
+
Es gibt acht grundlegende Datentypen in JavaScript. Hier werden wir sie allgemein behandeln, und in den nächsten Kapiteln werden wir auf jeden von ihnen im Detail eingehen.
9
6
10
-
We can put any type in a variable. For example, a variable can at one moment be a string and then store a number:
11
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
7
+
Wir können jeden beliebigen Typ in eine Variable setzen. Zum Beispiel kann eine Variable in einem Moment eine Zeichenfolge sein und dann eine Zahl speichern:
12
8
13
9
```js
14
10
// kein Fehler
15
11
let message ="Hallo";
16
12
message =123456;
17
13
```
18
14
19
-
<<<<<<< HEAD
20
-
Programmiersprachen, die solche Dinge erlauben, werden als "dynamisch typisiert" bezeichnet, was bedeutet, dass es Datentypen gibt, aber Variablen an keine von ihnen gebunden sind.
21
-
22
-
Es gibt acht grundlegende Datentypen in JavaScript. Hier werden wir sie allgemein behandeln und in den nächsten Kapiteln detailliert auf sie eingehen.
23
-
=======
24
-
Programming languages that allow such things, such as JavaScript, are called "dynamically typed", meaning that there exist data types, but variables are not bound to any of them.
25
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
15
+
Programmiersprachen, die solche Eigenschaften ermöglichen, wie z.B. JavaScript, werden als "dynamisch typisiert" bezeichnet, d.h. es gibt zwar Datentypen, aber die Variablen sind nicht an einen dieser Typen gebunden.
26
16
27
17
## Number
28
18
@@ -76,38 +66,23 @@ Mehr über das Arbeiten mit Zahlen erfahren wir in diesem Kapitel <info:number>.
76
66
77
67
## BigInt
78
68
79
-
<<<<<<<HEAD
80
-
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 16 Dezimalstellen, 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.
81
-
=======
82
-
In JavaScript, the "number" type cannot represent integer values larger than <code>(2<sup>53</sup>-1)</code> (that's `9007199254740991`), or less than <code>-(-2<sup>53</sup>-1)</code> for negatives. It's a technical limitation caused by their internal representation.
69
+
In JavaScript kann der Typ "Zahl" keine ganzzahligen Werte darstellen, die größer als <code>(2<sup>53</sup>-1)</code> (das ist `9007199254740991`) oder kleiner als <code>-(-2<sup>53</sup>-1)</code> für Negative sind. Es handelt sich um eine technische Einschränkung, die durch ihre interne Darstellung bedingt ist.
83
70
84
-
For most purposes that's quite enough, but sometimes we need really big numbers, e.g. for cryptography or microsecond-precision timestamps.
85
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
71
+
Für die meisten Zwecke reicht das völlig aus, aber manchmal brauchen wir wirklich große Zahlen, z.B. für die Kryptographie oder Zeitstempel mit Mikrosekunden-Genauigkeit.
86
72
87
73
Der Typ `BigInt` wurde kürzlich der Sprache hinzugefügt, um Ganzzahlen beliebiger Länge darzustellen.
88
74
89
-
<<<<<<< HEAD
90
-
Ein `BigInt` wird durch Anhängen von `n` an das Ende einer Ganzzahl erstellt:
91
-
=======
92
-
A `BigInt` value is created by appending `n` to the end of an integer:
93
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
75
+
Ein `BigInt`-Wert wird durch Anhängen von `n` an das Ende einer Ganzzahl erzeugt:
94
76
95
77
```js
96
78
// Das "n" am Ende bedeutet, dass es ein BigInt ist
Da `BigInt`-Zahlen selten benötigt werden, haben wir ihnen ein eigenes Kapitel gewidmet <info:bigint>.
102
-
103
-
```smart header="Kompatibilitätsprobleme"
104
-
Derzeit wird `BigInt` in Firefox und Chrome unterstützt, nicht jedoch in Safari/IE/Edge.
105
-
=======
106
-
As `BigInt` numbers are rarely needed, we don't cover them here, but devoted them a separate chapter <info:bigint>. Read it when you need such big numbers.
82
+
Da `BigInt`-Zahlen selten benötigt werden, behandeln wir sie hier nicht, sondern widmen ihnen ein eigenes Kapitel <info:bigint>. Lies es, wenn du so große Zahlen brauchst.
107
83
108
84
```smart header="Compatability issues"
109
-
Right now `BigInt` is supported in Firefox/Chrome/Edge, but not in Safari/IE.
110
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
85
+
Im Moment wird `BigInt` in Firefox/Chrome/Edge unterstützt, aber nicht in Safari/IE.
111
86
```
112
87
113
88
## String
@@ -192,14 +167,10 @@ In JavaScript ist `null` kein "Verweis auf ein nicht vorhandenes Objekt" oder ei
192
167
193
168
Es ist nur ein spezieller Wert, der "nichts", "leer" oder "Wert unbekannt" darstellt.
194
169
195
-
<<<<<<< HEAD
196
-
Der obige Code besagt, dass `age` aus irgendeinem Grund unbekannt oder leer ist.
197
-
=======
198
-
The code above states that `age` is unknown.
199
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
170
+
Der oben genannte Code besagt, dass das `age` unbekannt ist.
200
171
201
172
## Der Wert "undefined"
202
-
173
+
`
203
174
Der spezielle Wert `undefined` steht ebenfalls abseits. Er bildet einen eigenen Typ, genau wie `null`.
204
175
205
176
Die Bedeutung von `undefined` ist "Wert ist nicht zugewiesen".
@@ -209,17 +180,10 @@ Wenn eine Variable deklariert, aber nicht zugewiesen ist, ist ihr Wert `undefine
209
180
```js run
210
181
let age;
211
182
212
-
<<<<<<<HEAD
213
-
alert(x); // zeigt "undefined"
183
+
alert(age); // zeigt "undefined"
214
184
```
215
185
216
186
Technisch gesehen ist es möglich, jeder Variablen ein `undefined` zuzuweisen:
217
-
=======
218
-
alert(age); // shows "undefined"
219
-
```
220
-
221
-
Technically, it is possible to explicitly assign `undefined` to a variable:
222
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
223
187
224
188
```js run
225
189
let age =100;
@@ -230,27 +194,17 @@ age = undefined;
230
194
alert(age); // "undefined"
231
195
```
232
196
233
-
<<<<<<<HEAD
234
-
...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.
235
-
=======
236
-
...But we don't recommend doing that. Normally, one uses `null` to assign an "empty" or "unknown" value to a variable, while `undefined` is reserved as a default initial value for unassigned things.
237
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
197
+
...Aber wir raten davon ab, das zu tun. Normalerweise verwendet man `null`, um einer Variablen einen "leeren" oder "unbekannten" Wert zuzuweisen, während `undefined` als Standard-Anfangswert für nicht zugewiesene Werte reserviert ist.
238
198
239
199
## Objekte und Symbole
240
200
241
201
Der Typ `object` ist etwas Besonderes.
242
202
243
-
<<<<<<< HEAD
244
-
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.
245
-
246
-
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.
247
-
=======
248
-
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.
203
+
Alle anderen Typen werden als "primitiv" bezeichnet, weil ihre Werte nur eine einzige Sache enthalten können (sei es eine Zeichenfolge oder eine Zahl oder was auch immer). Im Gegensatz dazu werden Objekte zur Speicherung von Datensammlungen und komplexeren Entitäten verwendet.
249
204
250
-
Being that important, objects deserve a special treatment. We'll deal with them later in the chapter <info:object>, after we learn more about primitives.
205
+
Da Objekte so wichtig sind, verdienen sie besondere Aufmerksamkeit. Wir werden sie später im Kapitel <info:object> behandeln, nachdem wir mehr über Primitive erfahren haben.
251
206
252
-
The `symbol` type is used to create unique identifiers forobjects. We have to mention it here for the sake of completeness, but also postpone the details till we know objects.
253
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
207
+
Der Typ `symbol` wird verwendet, um eindeutige Bezeichner für Objekte zu erstellen. Wir müssen es hier der Vollständigkeit halber erwähnen, aber auch die Details aufschieben, bis wir Objekte kennen.
Die letzten drei Zeilen bedürfen möglicherweise einer zusätzlichen Erläuterung:
295
249
296
-
<<<<<<<HEAD
297
250
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.
298
-
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.
299
-
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.
300
-
=======
301
-
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.
302
-
2. The result of`typeof null` is `"object"`. That's an officially recognized error in `typeof` behavior, coming from the early days of JavaScript and kept for compatibility. Definitely, `null` is not an object. It is a special value with a separate type of its own.
303
-
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 inJavaScript. Functions belong to the object type. But`typeof` treats them differently, returning `"function"`. That also comes from the early days ofJavaScript. Technically, such behavior isn't correct, but can be convenient in practice.
304
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
251
+
2. Das Ergebnis von `typeof null` ist `"object"`. Das ist ein offiziell anerkannter Fehler im `typeof`-Verhalten, der aus den frühen Tagen von JavaScript stammt und aus Kompatibilitätsgründen beibehalten wurde. Definitiv ist `null` kein Objekt. Es ist ein besonderer Wert mit einem eigenen Typ.
252
+
3. Das Ergebnis von `typeof alert` ist `"function"`, denn `alert` ist eine Funktion. Wir werden Funktionen in den nächsten Kapiteln untersuchen, wo wir auch sehen werden, dass es keinen speziellen "Funktionstyp" in JavaScript gibt. Funktionen gehören zum Objekttyp. Aber `typeof` behandelt sie anders und gibt `"function"` zurück. Auch das stammt aus den frühen Tagen von JavaScript. Technisch gesehen ist ein solches Verhalten nicht korrekt, kann aber in der Praxis bequem sein.
305
253
306
254
## Zusammenfassung
307
255
308
256
Es gibt 8 grundlegende Datentypen in JavaScript.
309
257
310
-
<<<<<<< HEAD
311
-
- `number` für Zahlen jeglicher Art: Ganzzahl oder Gleitkommazahl, ganze Zahlen werden begrenzt durch ±2<sup>53</sup>.
312
-
- `bigint` steht für ganzzahlige Zahlen beliebiger Länge.
313
-
- `string` für Zeichenketten. Eine String kann aus einem oder mehreren Zeichen bestehen. Es gibt keine separaten Einzelzeichen.
258
+
-`number` für Zahlen jeglicher Art: Ganzzahl oder Gleitkommazahl, ganze Zahlen sind auf ±2<sup>53</sup> begrenzt.
259
+
-`bigint` steht für ganze Zahlen beliebiger Länge.
260
+
-`string` für Zeichenketten. Eine String kann aus null oder mehreren Zeichen bestehen. Es gibt keine separaten Einzelzeichentyp.
314
261
-`boolean` für `true`/`false`.
315
262
-`null` für unbekannte Werte -- ein eigenständiger Typ mit einem einzelnen Wert `null`.
316
263
-`undefined` für nicht zugewiesene Werte -- ein eigenständiger Typ mit einem einzelnen Wert `undefined`.
317
264
-`object` für komplexere Datenstrukturen.
318
265
-`symbol` für eindeutige Kennungen.
319
-
=======
320
-
- `number` for numbers of any kind: integer or floating-point, integers are limited by ±2<sup>53</sup>.
321
-
- `bigint` is for integer numbers of arbitrary length.
322
-
- `string` for strings. A string may have zero or more characters, there's no separate single-character type.
323
-
-`boolean`for`true`/`false`.
324
-
-`null`for unknown values -- a standalone type that has a single value `null`.
325
-
-`undefined`for unassigned values -- a standalone type that has a single value `undefined`.
326
-
-`object`for more complex data structures.
327
-
-`symbol`for unique identifiers.
328
-
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
329
266
330
267
Mit dem Operator `typeof` können wir sehen, welcher Typ in einer Variablen gespeichert ist.
0 commit comments