Skip to content

Commit e66270d

Browse files
committed
merging all conflicts
2 parents e0649a0 + cd2c7ce commit e66270d

File tree

155 files changed

+1931
-787
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+1931
-787
lines changed

1-js/02-first-steps/01-hello-world/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Hier ist `/pfad/zum/script.js` ein absoluter Pfad zu dem Skript, aus dem Wurzelv
7878
Außerdem können wir auch eine komplette URL angeben. Beispielsweise:
7979

8080
```html
81-
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.2.0/lodash.js"></script>
81+
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
8282
```
8383

8484
Um mehrere Skripte einzufügen, nutze Mehrfach-Tags:

1-js/02-first-steps/03-strict-mode/article.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,12 @@ Beispielsweise:
1919
...
2020
```
2121

22+
<<<<<<< HEAD
2223
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.
2324

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
2428
2529
````warn header="Stellen sicher, dass \"use strict\" am Anfang steht"
2630
Stelle sicher, dass `"use strict"` am Anfang deiner Skripte steht, da sonst der strikte Modus möglicherweise nicht aktiv ist.
@@ -47,11 +51,21 @@ Sobald wir in den strikten Modus wechseln, gibt es kein Zurück mehr.
4751
4852
## Browser-Konsole
4953
54+
<<<<<<< HEAD
5055
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
5159
5260
Manchmal, wenn `use strict` einen Unterschied macht, erhältst du falsche Ergebnisse.
5361
62+
<<<<<<< HEAD
5463
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?
66+
67+
First, you can try to press `key:Shift+Enter` to input multiple lines, and put `use strict` on top, like this:
68+
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
5569
5670
```js
5771
'use strict'; <Umschalt+Eingabe für eine neue Zeile>
@@ -61,12 +75,17 @@ Du kannst versuchen, durch Drücken von `key:Umschalt+Eingabetaste` mehrere Zeil
6175

6276
Es funktioniert in den meisten Browsern, wie Firefox und Chrome.
6377

78+
<<<<<<< HEAD
6479
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
6583
6684
```js
6785
(function() {
6886
'use strict';
6987

88+
<<<<<<< HEAD
7089
// ...Dein Code...
7190
})()
7291
```
@@ -83,3 +102,24 @@ Im Moment genügt es, allgemein zu wissen:
83102
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.
84103
3. Der strikte Modus wird von allen modernen Browsern unterstützt.
85104
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+
// ...your code here...
107+
})()
108+
```
109+
110+
## Should we "use strict"?
111+
112+
The question may sound obvious, but it's not so.
113+
114+
One could recommend to start scripts with `"use strict"`... But you know what's cool?
115+
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.
117+
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.**
119+
120+
As of now, we've got to know about `use strict` in general.
121+
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.
123+
124+
All examples in this tutorial assume strict mode unless (very rarely) specified otherwise.
125+
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31

1-js/02-first-steps/05-types/article.md

Lines changed: 74 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
11
# Datentypen
22

3+
<<<<<<< HEAD
34
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.
7+
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.
9+
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
412
513
```js
614
// kein Fehler
715
let message = "Hallo";
816
message = 123456;
917
```
1018

19+
<<<<<<< HEAD
1120
Programmiersprachen, die solche Dinge erlauben, werden als "dynamisch typisiert" bezeichnet, was bedeutet, dass es Datentypen gibt, aber Variablen an keine von ihnen gebunden sind.
1221

1322
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
1426
1527
## Number
1628

@@ -64,21 +76,38 @@ Mehr über das Arbeiten mit Zahlen erfahren wir in diesem Kapitel <info:number>.
6476

6577
## BigInt
6678

79+
<<<<<<< HEAD
6780
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.
83+
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
6886
6987
Der Typ `BigInt` wurde kürzlich der Sprache hinzugefügt, um Ganzzahlen beliebiger Länge darzustellen.
7088
89+
<<<<<<< HEAD
7190
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
7294
7395
```js
7496
// Das "n" am Ende bedeutet, dass es ein BigInt ist
7597
const bigInt = 1234567890123456789012345678901234567890n;
7698
```
7799
100+
<<<<<<< HEAD
78101
Da `BigInt`-Zahlen selten benötigt werden, haben wir ihnen ein eigenes Kapitel gewidmet <info:bigint>.
79102
80103
```smart header="Kompatibilitätsprobleme"
81104
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.
107+
108+
```smart header="Compatability issues"
109+
Right now `BigInt` is supported in Firefox/Chrome/Edge, but not in Safari/IE.
110+
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
82111
```
83112

84113
## String
@@ -163,7 +192,11 @@ In JavaScript ist `null` kein "Verweis auf ein nicht vorhandenes Objekt" oder ei
163192
164193
Es ist nur ein spezieller Wert, der "nichts", "leer" oder "Wert unbekannt" darstellt.
165194
195+
<<<<<<< HEAD
166196
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
167200
168201
## Der Wert "undefined"
169202
@@ -174,30 +207,50 @@ Die Bedeutung von `undefined` ist "Wert ist nicht zugewiesen".
174207
Wenn eine Variable deklariert, aber nicht zugewiesen ist, ist ihr Wert `undefined`:
175208
176209
```js run
177-
let x;
210+
let age;
178211

212+
<<<<<<< HEAD
179213
alert(x); // zeigt "undefined"
180214
```
181215
182216
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
183223

184224
```js run
185-
let x = 123;
225+
let age = 100;
186226
187-
x = undefined;
227+
// change the value to undefined
228+
age = undefined;
188229
189-
alert(x); // "undefined"
230+
alert(age); // "undefined"
190231
```
191232

233+
<<<<<<< HEAD
192234
...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
193238
194239
## Objekte und Symbole
195240
196241
Der Typ `object` ist etwas Besonderes.
197242
243+
<<<<<<< HEAD
198244
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.
199245
200246
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.
249+
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.
251+
252+
The `symbol` type is used to create unique identifiers for objects. We have to mention it here for the sake of completeness, but also postpone the details till we know objects.
253+
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
201254

202255
## Der Operator typeof [#type-typeof]
203256

@@ -240,14 +293,21 @@ typeof alert // "function" (3)
240293

241294
Die letzten drei Zeilen bedürfen möglicherweise einer zusätzlichen Erläuterung:
242295

296+
<<<<<<< HEAD
243297
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.
244298
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.
245299
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 in JavaScript. Functions belong to the object type. But `typeof` treats them differently, returning `"function"`. That also comes from the early days of JavaScript. Technically, such behavior isn't correct, but can be convenient in practice.
304+
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31
246305
247306
## Zusammenfassung
248307
249308
Es gibt 8 grundlegende Datentypen in JavaScript.
250309
310+
<<<<<<< HEAD
251311
- `number` für Zahlen jeglicher Art: Ganzzahl oder Gleitkommazahl, ganze Zahlen werden begrenzt durch ±2<sup>53</sup>.
252312
- `bigint` steht für ganzzahlige Zahlen beliebiger Länge.
253313
- `string` für Zeichenketten. Eine String kann aus einem oder mehreren Zeichen bestehen. Es gibt keine separaten Einzelzeichen.
@@ -256,6 +316,16 @@ Es gibt 8 grundlegende Datentypen in JavaScript.
256316
- `undefined` für nicht zugewiesene Werte -- ein eigenständiger Typ mit einem einzelnen Wert `undefined`.
257317
- `object` für komplexere Datenstrukturen.
258318
- `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
259329

260330
Mit dem Operator `typeof` können wir sehen, welcher Typ in einer Variablen gespeichert ist.
261331

File renamed without changes.
File renamed without changes.

1-js/02-first-steps/09-alert-prompt-confirm/article.md renamed to 1-js/02-first-steps/06-alert-prompt-confirm/article.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Interaktion: alert, prompt, confirm
22

3+
<<<<<<< HEAD:1-js/02-first-steps/09-alert-prompt-confirm/article.md
34
In diesem Teil des Tutorials behandeln wir die JavaScript-Sprache "als solche", ohne umgebungsspezifische Anpassungen.
45

56
Aber wir verwenden immer noch den Browser als Demoumgebung, also sollten wir zumindest einige seiner Funktionen der Benutzeroberfläche kennen. In diesem Kapitel machen wir uns mit den Browser-Funktionen `alert` (hinweisen), `prompt` (anfragen) und `confirm` (bestätigen) vertraut.
@@ -13,14 +14,25 @@ alert(message);
1314
```
1415

1516
Dies zeigt eine Meldung `message` an und hält die Ausführung des Skripts an, bis der Benutzer auf "OK" klickt.
17+
=======
18+
As we'll be using the browser as our demo environment, let's see a couple of functions to interact with the user: `alert`, `prompt` and `confirm`.
19+
20+
## alert
21+
22+
This one we've seen already. It shows a message and waits for the user to presses "OK".
23+
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31:1-js/02-first-steps/06-alert-prompt-confirm/article.md
1624
1725
Zum Beispiel:
1826

1927
```js run
2028
alert("Hello");
2129
```
2230

31+
<<<<<<< HEAD:1-js/02-first-steps/09-alert-prompt-confirm/article.md
2332
Das Minifenster mit der Meldung wird als *modales Fenster* bezeichnet. Das Wort "modal" bedeutet, dass der Besucher nicht mit dem Rest der Seite interagieren kann, keine anderen Knöpfe drücken kann, usw., bis er sich mit dem Fenster beschäftigt hat. In diesem Fall -- bis er auf "OK" drückt.
33+
=======
34+
The mini-window with the message is called a *modal window*. The word "modal" means that the visitor can't interact with the rest of the page, press other buttons, etc, until they have dealt with the window. In this case -- until they press "OK".
35+
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31:1-js/02-first-steps/06-alert-prompt-confirm/article.md
2436
2537
## prompt
2638

@@ -38,7 +50,15 @@ Es wir ein modales Fenster mit einer Meldung angezeigt, ein Eingabefeld für den
3850
`default`
3951
: Ein optionaler zweiter Parameter, der vor-befüllte Wert für das Eingabefeld.
4052

53+
<<<<<<< HEAD:1-js/02-first-steps/09-alert-prompt-confirm/article.md
4154
Der Besucher kann etwas in das Feld tippen und dann auf OK klicken. Oder er beendet die Eingabe, indem er auf Abbrechen klickt oder die `key:Esc` Taste drückt.
55+
=======
56+
```smart header="The square brackets in syntax `[...]`"
57+
The square brackets around `default` in the syntax above denote that the parameter as optional, not required.
58+
```
59+
60+
The visitor can type something in the prompt input field and press OK. Then we get that text in the `result`. Or they can cancel the input by pressing Cancel or hitting the `key:Esc` key, then we get `null` as the `result`.
61+
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31:1-js/02-first-steps/06-alert-prompt-confirm/article.md
4262
4363
Der Aufruf von `prompt` gibt den Text des Eingabefelds zurück. Wenn die Eingabe abgebrochen wurde, so ist der Rückgabewert `null`.
4464

1-js/02-first-steps/06-type-conversions/article.md renamed to 1-js/02-first-steps/07-type-conversions/article.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,15 @@ Zum Beispiel wandelt `alert` automatisch jeden Wert in den Datentyp "String" um
66

77
Es gibt auch Fälle, in denen wir einen Wert explizit in den erwarteten Datentyp umwandeln müssen.
88

9+
<<<<<<< HEAD:1-js/02-first-steps/06-type-conversions/article.md
910
```smart header="Wir sprechen noch nicht über Objekte"
1011
In diesem Kapitel werden wir keine Objekte behandeln. Stattdessen werden wir uns zuerst die primitiven Datentypen ansehen. Später, nachdem wir mehr über Objekte gelernt haben, werden wir im Kapitel <info:object-toprimitive> sehen, wie die Objektumwandlung funktioniert.
12+
=======
13+
```smart header="Not talking about objects yet"
14+
In this chapter, we won't cover objects. For now we'll just be talking about primitives.
15+
16+
Later, after we learn about objects, in the chapter <info:object-toprimitive> we'll see how objects fit in.
17+
>>>>>>> cd2c7ce3c8f033e6f7861ed1b126552e41ba3e31:1-js/02-first-steps/07-type-conversions/article.md
1118
```
1219

1320
## String Umwandlung
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)