Skip to content

Commit ba6bdc7

Browse files
authored
Merge branch 'master' into master
2 parents 3ea2862 + c75e3f5 commit ba6bdc7

File tree

631 files changed

+8904
-4986
lines changed

Some content is hidden

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

631 files changed

+8904
-4986
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: iliakan

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ sftp-config.json
2121
Thumbs.db
2222

2323

24+
/svgs

1-js/01-getting-started/1-intro/article.md

Lines changed: 47 additions & 47 deletions
Large diffs are not rendered by default.

1-js/01-getting-started/1-intro/limitations.svg

Lines changed: 1 addition & 1 deletion
Loading
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,75 @@
11

22
# Handbücher und Spezifikationen
33

4+
<<<<<<< HEAD
45
Dieses Buch ist ein *Tutorial*. Es soll dir helfen, die Sprache nach und nach zu erlernen. Aber sobald du mit den Grundlagen vertraut bist, wirst du andere Quellen benötigen.
6+
=======
7+
This book is a *tutorial*. It aims to help you gradually learn the language. But once you're familiar with the basics, you'll need other resources.
8+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10
59
610
## Spezifikation
711

812
[The ECMA-262 specification](https://www.ecma-international.org/publications/standards/Ecma-262.htm) enthält die ausführlichsten, detailliertesten und formalisiertesten Informationen über JavaScript. Es definiert die Sprache.
913

1014
Die Tatsache dass es so festgschrieben ist, macht es am Anfgan etwas schwer verständlich. Wenn du also die vertrauenswürdigste Informationsquelle benötigst, dann ist die Spezifikation dir richtige Stelle. Sie ist jedoch nicht für den alltäglichen Gebrauch passend.
1115

16+
<<<<<<< HEAD
1217
Eine neue Spezifikationsversion wird jedes Jahr veröffentlicht. In der Zwischenzeit kann der letzte entwurf unter <https://tc39.es/ecma262/> gefunden werden.
18+
=======
19+
A new specification version is released every year. Between these releases, the latest specification draft is at <https://tc39.es/ecma262/>.
20+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10
1321
1422
Um mehr über die neuen bleeding-edge features, einschliesslich derjendigen, die "fast Standard" sind ("stage 3" genannt), siehe Vorschläge unter <https://github.com/tc39/proposals>.
1523

24+
<<<<<<< HEAD
1625
Wenn du für den Browser entwickeln, dann gibt es noch weitere Spezifikationen, die im [zweiten Teil](info:browser-environment) des Tutorials behandelt werden.
26+
=======
27+
Also, if you're developing for the browser, then there are other specifications covered in the [second part](info:browser-environment) of the tutorial.
28+
>>>>>>> a82915575863d33db6b892087975f84dea6cb425
1729
1830
## Handbücher
1931

32+
<<<<<<< HEAD
2033
- **MDN (Mozilla) JavaScript Reference** ist ein Handbuch mit Beispielen und anderen Informationen. Es ist grossartig, sich über einzelne Sprachfunktionen, Methoden etc. ausführlich zu informieren.
34+
=======
35+
- **MDN (Mozilla) JavaScript Reference** is the main manual with examples and other information. It's great to get in-depth information about individual language functions, methods etc.
36+
>>>>>>> a82915575863d33db6b892087975f84dea6cb425
2137
38+
<<<<<<< HEAD
2239
Man kann es unter <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference> finden.
2340

41+
<<<<<<< HEAD
2442
Obwohl es oft am besten ist, stattdessen eine Internetsuche zu verwenden. Benutze einfach "MDN [Begriff]" in der Anfrage, z.B. <https://google.com/search?q=MDN+parseInt> um nach der `parseInt` Funktion zu suchen.
2543

2644

2745
- **MSDN** – Microsoft Handbuch mit vielen Informationen, einschließlich JavaScript (oft als JScript bezeichnet). Wenn man etwas speziell für den Internet Explorer benötigt, sollte man besser dorthin gehen: <http://msdn.microsoft.com/>.
2846

2947
Wir können auch eine Internetsuche mit Phrasen wie "RegExp MSDN" oder "RegExp MSDN jscript" verwenden.
48+
=======
49+
Although, it's often best to use an internet search instead. Just use "MDN [term]" in the query, e.g. <https://google.com/search?q=MDN+parseInt> to search for `parseInt` function.
50+
>>>>>>> a82915575863d33db6b892087975f84dea6cb425
51+
=======
52+
You can find it at <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
53+
54+
Although, it's often best to use an internet search instead. Just use "MDN [term]" in the query, e.g. <https://google.com/search?q=MDN+parseInt> to search for the `parseInt` function.
55+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10
3056
3157
## Kompatibilitäts-Tabellen
3258

3359
JavaScript ist eine Entwicklungssprache, neue Funktionen werden regelmäßig hinzugefügt.
3460

3561
Um ihre Unterstützung unter den Browser-basierten und anderen Engines zu sehen, siehe:
3662

63+
<<<<<<< HEAD
3764
- <http://caniuse.com> - pro Feature-Tabellen der Unterstützung, z.B. um zu sehen, welche Engines moderne Kryptographie-Funktionen unterstützen: <http://caniuse.com/#feat=cryptography>.
3865
- <https://kangax.github.io/compat-table> - eine Tabelle mit Sprachfunktionen und Engines, die diese unterstützen oder nicht unterstützen.
3966

4067
All diese Ressourcen sind in der realen Entwicklung nützlich, da sie wertvolle Informationen über sprachliche Details, ihre Unterstützung usw. enthalten.
68+
=======
69+
- <https://caniuse.com> - per-feature tables of support, e.g. to see which engines support modern cryptography functions: <https://caniuse.com/#feat=cryptography>.
70+
- <https://kangax.github.io/compat-table> - a table with language features and engines that support those or don't support.
71+
72+
All these resources are useful in real-life development, as they contain valuable information about language details, their support, etc.
73+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10
4174
4275
Bitte merke dir diese (oder diese Seite) für die Fälle, in denen du vertiefte Informationen über eine bestimmte Funktion benötigst.
Lines changed: 42 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,66 @@
1-
# Code editors
1+
# Code-Editoren
22

3-
A code editor is the place where programmers spend most of their time.
3+
Der Code-Editor ist das Werkzeug, mit dem Programmierer die meiste Zeit verbringen.
44

5-
There are two main types of code editors: IDEs and lightweight editors. Many people use one tool of each type.
5+
Es gibt zwei Arten von Code-Editoren: IDEs und Quelltext-Editoren. Viele Programmierer nutzen je ein Exemplar jedes Typs.
66

77
## IDE
88

9-
The term [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) (Integrated Development Environment) refers to a powerful editor with many features that usually operates on a "whole project." As the name suggests, it's not just an editor, but a full-scale "development environment."
9+
Der Begriff [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) (Integrated Development Environment) bezieht sich auf einen mächtigen Editor mit vielen Nutzungsmöglichkeiten, der im Normalfall alle Arbeitsbereiche des Projekts abdeckt. Wie der Name schon andeutet, handelt es sich bei IDEs nicht nur um einen reinen Editor, sondern um eine komplette Entwicklungsumgebung-
1010

11-
An IDE loads the project (which can be many files), allows navigation between files, provides autocompletion based on the whole project (not just the open file), and integrates with a version management system (like [git](https://git-scm.com/)), a testing environment, and other "project-level" stuff.
11+
Eine IDE lädt das Projekt (das aus vielen Dateien bestehen kann), erlaubt die Navigation zwischen Dateien, stellt eine Autovervollständigung für das gesamte Projekt (und nicht nur für die geöffnete Datei) bereit und ist mit einem Versionsverwaltungssystem (wie z.B.: [git](https://git-scm.com/)), einer Test-Umgebung und anderen Projektrelevanten Bereichen verknüpft.
1212

13-
If you haven't selected an IDE yet, consider the following options:
13+
Falls du für dich noch keine IDE ausgesucht hast, sind die nachfolgenden Optionen empfehlenswert:
1414

15+
<<<<<<< HEAD
16+
- [Visual Studio Code](https://code.visualstudio.com/) (Cross-Plattform, kostenlos).
17+
- [WebStorm](http://www.jetbrains.com/webstorm/) (Cross-Plattform, ksotenpflichtig).
18+
=======
1519
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
16-
- [WebStorm](http://www.jetbrains.com/webstorm/) (cross-platform, paid).
20+
- [WebStorm](https://www.jetbrains.com/webstorm/) (cross-platform, paid).
21+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10
1722
18-
For Windows, there's also "Visual Studio", not to be confused with "Visual Studio Code". "Visual Studio" is a paid and mighty Windows-only editor, well-suited for the .NET platform. It's also good at JavaScript. There's also a free version [Visual Studio Community](https://www.visualstudio.com/vs/community/).
23+
Für Windows steht außerdem "Visual Studio" zur Verfügung, diese IDE sollte nicht mit "Visual Studio Code" verwechselt werden. "Visual Studio" ist ein kostenpflichtiger und umfangreicher Editor, der insbesondere für die Arbeit mit der .Net-Plattform geeignet ist. "Visual Studio" ist außerdem gut für Javascript geeignet. Eine kostenlose Version ist unter folgender Adresse verfügbar: [Visual Studio Community](https://www.visualstudio.com/vs/community/).
1924

20-
Many IDEs are paid, but have a trial period. Their cost is usually negligible compared to a qualified developer's salary, so just choose the best one for you.
25+
Viele IDEs sind kostenpflichtig, stellen aber kostenlose Test-Versionen zur Verfügung. Die Kosten sind im Verhältnis zum Gehalt eines qualifizierten Programmierers vernachlässigbar, also such einfach die Plattform aus, die dir am besten passt.
2126

22-
## Lightweight editors
27+
## Quelltext-Editoren
2328

24-
"Lightweight editors" are not as powerful as IDEs, but they're fast, elegant and simple.
29+
Quelltext-Editoren, im englischen auch "lightweight editors", also leichtgewichtige Editoren genannt, sind nicht so mächtig wie IDEs, aber dafür sind sie schnell, eleganz und einfach in der Nutzung.
2530

26-
They are mainly used to open and edit a file instantly.
31+
Sie werden hauptsächlich dafür genutzt, Dateien schnell zu öffnen und zu bearbeiten.
2732

28-
The main difference between a "lightweight editor" and an "IDE" is that an IDE works on a project-level, so it loads much more data on start, analyzes the project structure if needed and so on. A lightweight editor is much faster if we need only one file.
33+
Der hauptsächliche Unterschied zwischen einem Quelltext-Editor und einer IDE liegt darin, dass die IDE auf der Projekt-Ebene arbeitet, sie lädt also viele relevante Dateien zu Programmstart, analysiert die Projektstruktur und so weiter. Ein Quelltext-Editor arbeitet weitaus schneller, wenn wir nur eine Datei brauchen.
2934

30-
In practice, lightweight editors may have a lot of plugins including directory-level syntax analyzers and autocompleters, so there's no strict border between a lightweight editor and an IDE.
35+
In der Praxis verfügen auch viele Quelltext-Editoren über eine breite Auswahl an Plugins, darunter etwa Analyse-Werkzeuge für die Code-Syntax und Unterstützung zur Autovervollständigung, so dass sich eine klare Grenze zwischen IDEs und Quelltext-Editoren gar nicht ziehen lässt.
3136

32-
The following options deserve your attention:
37+
<<<<<<< HEAD
38+
Die nachfolgenden Optionen sind gute Beispiele für Quelltext-Editoren
39+
=======
40+
There are many options, for instance:
41+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10
3342
34-
- [Atom](https://atom.io/) (cross-platform, free).
35-
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
36-
- [Sublime Text](http://www.sublimetext.com) (cross-platform, shareware).
43+
- [Sublime Text](https://www.sublimetext.com/) (cross-platform, shareware).
3744
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
38-
- [Vim](http://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
45+
<<<<<<< HEAD
46+
- [Vim](http://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) können ebenfalls sehr gut sein, wenn man damit umgehen kann.
47+
=======
48+
- [Vim](https://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
49+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10
3950
40-
## Let's not argue
51+
## ABER: Die Auswahl des Editors ist keinen Streit wert.
4152

42-
The editors in the lists above are those that either I or my friends whom I consider good developers have been using for a long time and are happy with.
53+
Die Editoren in der Liste wurden entweder von mir oder von Freunden ausgewählt, die ich für gute Entwickler halte und die seit langer Zeit erfolgreich mit den aufgeführten Editoren gearbeitet haben.
4354

44-
There are other great editors in our big world. Please choose the one you like the most.
55+
Aber es gibt natürlich auch andere Editoren in der großen Welt des Internets. Such dir einfach den Editor aus, mit dem du arbeiten möchtest.
4556

57+
<<<<<<< HEAD
58+
Die Wahl des Editors ist, wie bei jedem anderen Werkzeug, eine persönliche Vorliebe und hängt von deinem Projekt, deinen Arbeitsgewohnheiten und persönlichen Vorlieben ab.
59+
=======
4660
The choice of an editor, like any other tool, is individual and depends on your projects, habits, and personal preferences.
61+
62+
The author's personal opinion:
63+
64+
- I'd use [Visual Studio Code](https://code.visualstudio.com/) if I develop mostly frontend.
65+
- Otherwise, if it's mostly another language/platform and partially frontend, then consider other editors, such as XCode (Mac), Visual Studio (Windows) or Jetbrains family (Webstorm, PHPStorm, RubyMine etc, depending on the language).
66+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ Als erstes, lass uns sehen wie wir ein Skript einer Webseite hinzufügen. Für e
99

1010
## Der "script"-Tag
1111

12+
<<<<<<< HEAD
1213
JavaScript-Programme können an jeder beliebigen Stelle eines HTML-Dokuments mit Hilfe des `<script>`-Tag eingefügt werden.
14+
=======
15+
JavaScript programs can be inserted almost anywhere into an HTML document using the `<script>` tag.
16+
>>>>>>> a82915575863d33db6b892087975f84dea6cb425
1317
1418
Beispielsweise:
1519

@@ -73,7 +77,11 @@ Skript-Dateien werden zu HTML mit dem `src`-Attribute hinzugefügt:
7377
<script src="/pfad/zum/script.js"></script>
7478
```
7579

80+
<<<<<<< HEAD
7681
Hier ist `/pfad/zum/script.js` ein absoluter Pfad zu dem Skript, aus dem Wurzelverzeichnis der Seite. Auch ein relativer Pfad der aktuellen Seite kann angeben werden. Beispielsweise, `src="script.js"` würde eine Datei `"script.js"` im aktuellen Verzeichnis bedeuten.
82+
=======
83+
Here, `/path/to/script.js` is an absolute path to the script from the site root. One can also provide a relative path from the current page. For instance, `src="script.js"`, just like `src="./script.js"`, would mean a file `"script.js"` in the current folder.
84+
>>>>>>> a82915575863d33db6b892087975f84dea6cb425
7785
7886
Außerdem können wir auch eine komplette URL angeben. Beispielsweise:
7987

1-js/02-first-steps/02-structure/article.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ alert(3 +
4646
+ 2);
4747
```
4848

49+
<<<<<<< HEAD
4950
Der Code gibt `6` aus, da JavaScript hier keine Semikolons einfügt. Es ist intuitiv klar, dass, wenn die Zeile mit einem Pluszeichen `"+"` endet, es sich um einen "unvollständigen Ausdruck" handelt, sodass das Semikolon nicht erforderlich ist. Und in diesem Fall funktioniert das wie vorgesehen.
51+
=======
52+
The code outputs `6` because JavaScript does not insert semicolons here. It is intuitively obvious that if the line ends with a plus `"+"`, then it is an "incomplete expression", so a semicolon there would be incorrect. And in this case, that works as intended.
53+
>>>>>>> a82915575863d33db6b892087975f84dea6cb425
5054
5155
**Es gibt jedoch Situationen, in denen JavaScript ein Semikolon nicht annimmt, wenn es wirklich benötigt wird.**
5256

@@ -56,19 +60,31 @@ Fehler, die in solchen Fällen auftreten, sind schwer zu finden und zu beheben.
5660
Wenn du ein konkretes Beispiel für einen solchen Fehler sehen möchten, lies den folgenden Code:
5761
5862
```js run
59-
[1, 2].forEach(alert)
63+
alert("Hello");
64+
65+
[1, 2].forEach(alert);
6066
```
6167
68+
<<<<<<< HEAD
6269
Über die Bedeutung der Klammern `[]` und `forEach` muss noch nicht nachgedacht werden. Wir werden sie später studieren. Denk vorerst nur an das Ergebnis des Codes: Es zeigt `1`, dann `2`.
6370
6471
Fügen wir nun vor dem Code einen `alert` ein und beenden ihn *nicht* mit einem Semikolon:
6572
6673
```js run no-beautify
6774
alert("Es wird ein Fehler auftreten")
75+
=======
76+
No need to think about the meaning of the brackets `[]` and `forEach` yet. We'll study them later. For now, just remember the result of running the code: it shows `Hello`, then `1`, then `2`.
6877
69-
[1, 2].forEach(alert)
78+
Now let's remove the semicolon after the `alert`:
79+
80+
```js run no-beautify
81+
alert("Hello")
82+
>>>>>>> a82915575863d33db6b892087975f84dea6cb425
83+
84+
[1, 2].forEach(alert);
7085
```
7186
87+
<<<<<<< HEAD
7288
Wenn wir nun den Code ausführen, wird nur der erste `alert` angezeigt und dann haben wir einen Fehler!
7389
7490
Aber alles ist wieder in Ordnung, wenn wir nach `alert` ein Semikolon einfügen:
@@ -90,6 +106,23 @@ alert("Es wird ein Fehler auftreten")[1, 2].forEach(alert)
90106
```
91107
92108
Aber es sollten zwei getrennte Anweisungen sein, nicht eine. Eine solche Verschmelzung ist in diesem Fall einfach falsch, daher der Fehler. Dies kann auch in anderen Situationen auftreten.
109+
=======
110+
The difference compared to the code above is only one character: the semicolon at the end of the first line is gone.
111+
112+
If we run this code, only the first `Hello` shows (and there's an error, you may need to open the console to see it). There are no numbers any more.
113+
114+
That's because JavaScript does not assume a semicolon before square brackets `[...]`. So, the code in the last example is treated as a single statement.
115+
116+
Here's how the engine sees it:
117+
118+
```js run no-beautify
119+
alert("Hello")[1, 2].forEach(alert);
120+
```
121+
122+
Looks weird, right? Such merging in this case is just wrong. We need to put a semicolon after `alert` for the code to work correctly.
123+
124+
This can happen in other situations also.
125+
>>>>>>> a82915575863d33db6b892087975f84dea6cb425
93126
````
94127

95128
Es wird empfohlen, Semikolons zwischen Anweisungen zu setzen, auch wenn diese durch Zeilenumbrüche getrennt sind. Diese Regel wird von der Community weitgehend übernommen. Lass uns noch einmal festhalten -- es ist möglich, Semikolons die meiste Zeit wegzulassen. Aber es ist sicherer -- besonders für Anfänger -- sie zu benutzen.

1-js/02-first-steps/04-variables/2-declare-variables/solution.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ Das ist einfach:
66
let ourPlanetName = "Earth";
77
```
88

9+
<<<<<<< HEAD
910
Beachte, wir könnten einen kürzeren Namen `planet` verwenden, aber es könnte nicht offensichtlich sein, auf welchen Planeten er sich bezieht. Es ist schön, etwas ausführlicher zu sein. Zumindest bis die Variable nicht zu lang ist.
11+
=======
12+
Note, we could use a shorter name `planet`, but it might not be obvious what planet it refers to. It's nice to be more verbose. At least until the variable isNotTooLong.
13+
>>>>>>> a82915575863d33db6b892087975f84dea6cb425
1014
1115
## Der Name des aktuellen Besuchers
1216

1-js/02-first-steps/04-variables/3-uppercast-constant/task.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,24 @@ const birthday = '18.04.1982';
1212
const age = someCode(birthday);
1313
```
1414

15+
<<<<<<< HEAD
1516
Hier haben wir ein konstantes Geburtsdatum `birthday` und das Alter `age`, welches berechnet wird aus `birthday` mittels eines gewissen Codes (dieser wird der Kürze wegen nicht angegeben und weil Details hier keine Rolle spielen).
17+
=======
18+
Here we have a constant `birthday` for the date, and also the `age` constant.
19+
20+
The `age` is calculated from `birthday` using `someCode()`, which means a function call that we didn't explain yet (we will soon!), but the details don't matter here, the point is that `age` is calculated somehow based on the `birthday`.
21+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10
1622
1723
Wäre es richtig, für `birthday` Großbuchstaben zu verwenden? Für `age`? der sogar für beide
1824

1925
```js
26+
<<<<<<< HEAD
2027
const BIRTHDAY = '18.04.1982'; // in Großbuchstaben?
2128

2229
const AGE = someCode(BIRTHDAY); // in Großbuchstaben?
23-
```
30+
=======
31+
const BIRTHDAY = '18.04.1982'; // make birthday uppercase?
2432

33+
const AGE = someCode(BIRTHDAY); // make age uppercase?
34+
>>>>>>> d694e895efe89922a109702085b6ca1efeffea10
35+
```

0 commit comments

Comments
 (0)