Skip to content

Commit 739601b

Browse files
authored
Merge branch 'master' into master
2 parents b7c351d + 5594061 commit 739601b

450 files changed

Lines changed: 2114 additions & 12713 deletions

File tree

Some content is hidden

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

.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: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
Το browser έχει ένα ενσωματωμένο JavaScript engine που συνηθως λέγεται "JavaScript virtual machine".
2323

24-
2524
Κάθε engine έχει δικό του "codename". Για παράδειγμά:
2625

2726
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- στο Chrome και Opera.
@@ -118,13 +117,3 @@
118117
- Η JavaScript δημιουργήθηκε αρχικά ως γλώσσα μόνο για πρόγραμμα περιήγησης, αλλά τώρα χρησιμοποιείται και σε πολλά άλλα περιβάλλοντα.
119118
- Σήμερα, η JavaScript έχει μια μοναδική θέση ως η πιο ευρέως υιοθετημένη γλώσσα προγράμματος περιήγησης με πλήρη ενσωμάτωση σε HTML / CSS.
120119
- Υπάρχουν πολλές γλώσσες που "μεταδίδονται" στην JavaScript και παρέχουν ορισμένες λειτουργίες. Συνιστάται να τα ρίξετε μια ματιά, τουλάχιστον εν συντομία, εφόσον γίνεται ατσίδες στην JavaScript.
121-
122-
- [CoffeeScript](http://coffeescript.org/) is a "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
123-
- [TypeScript](http://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
124-
- [Flow](http://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
125-
- [Dart](https://www.dartlang.org/) is a standalone language that has its own engine that runs in non-browser environments (like mobile apps), but also can be transpiled to JavaScript. Developed by Google.
126-
- [Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript.
127-
- JavaScript was initially created as a browser-only language, but it is now used in many other environments as well.
128-
- Today, JavaScript has a unique position as the most widely-adopted browser language with full integration in HTML/CSS.
129-
- There are many languages that get "transpiled" to JavaScript and provide certain features. It is recommended to take a look at them, at least briefly, after mastering JavaScript.
130-

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

Lines changed: 1 addition & 92 deletions
Loading

1-js/01-getting-started/2-manuals-specifications/article.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@
1717

1818
## Εγχειρίδια
1919

20+
2021
- **MDN (Mozilla) JavaScript Reference** είναι ένα εγχειρίδιο με παραδείγματα και άλλες πληροφορίες. Είναι καλό να λάβετε σε βάθος πληροφορίες σχετικά με μεμονωμένες λειτουργίες γλώσσας, μεθόδους κλπ.
2122

22-
Μπορεί κανείς να το βρει στο <https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference>.
23+
Μπορεί κανείς να το βρει στο <https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference>.
2324

2425
Αν και είναι καλύτερα να χρησιμοποιήσετε μια αναζήτηση στο Διαδίκτυο. Απλά χρησιμοποιήστε "MDN [όρος]" σαν ερώτημα, πχ. <https://google.com/search?q=MDN+parseInt> αναζήτηση σχετικά για το `parseInt` function.
2526

1-js/01-getting-started/4-devtools/article.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88

99
Οι περισσότεροι προγραμματιστές κλίνουν προς το Chrome ή τον Firefox για ανάπτυξη, επειδή αυτά τα προγράμματα περιήγησης έχουν τα καλύτερα developer tools. Άλλα προγράμματα περιήγησης παρέχουν επίσης developer tools, μερικές φορές με ειδικές λειτουργίες, αλλά συνήθως προσπαθούν να "προφτάσουν" στο Chrome ή τον Firefox. Έτσι, οι περισσότεροι προγραμματιστές έχουν ένα "αγαπημένο" πρόγραμμα περιήγησης και μεταβαίνουν σε άλλους, εάν ένα πρόβλημα είναι συγκεκριμένο για τον browser.
1010

11+
1112
Τα developer tools είναι ισχυρά, έχουν πολλά χαρακτηριστικά. Για να ξεκινήσετε, θα μάθουμε πώς να τα ανοίγουμε, να εξετάζουμε τα σφάλματα και να εκτελούμε τις εντολές της JavaScript.
1213

14+
1315
## Google Chrome
1416

1517
Ανοίξτε τη σελίδα [bug.html](bug.html).

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

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,25 +48,33 @@ alert(3 +
4848

4949
Το αποτέλεσμα του κώδικα είναι `6` επειδή το JavaScript δεν εισάγει εδώ ερωτηματικά. Είναι ολοφάνερο ότι αν η γραμμή τελειώσει με ένα συν `` + '', τότε είναι μια "ατελής έκφραση", οπότε δεν χρειάζεται το ερωτηματικό. Και σε αυτή την περίπτωση αυτό λειτουργεί όπως είχε προβλεφθεί.
5050

51+
5152
**Ωστόσο, υπάρχουν περιπτώσεις στις οποίες η JavaScript "αποτυγχάνει" να υποθέσει ένα ερωτηματικό όπου είναι πραγματικά απαραίτητο.**
5253

5354
Τα σφάλματα που προκύπτουν σε τέτοιες περιπτώσεις είναι αρκετά δύσκολο να βρεθούν και να διορθωθούν.
5455

5556
````smart header="Aν example of an error"
5657
Αν είστε περίεργοι να δείτε ένα παράδειγμα ενός τέτοιου σφάλματος, ελέγξτε αυτόν τον κωδικό:
5758
59+
5860
```js run
5961
[1, 2].forEach(alert)
6062
```
6163
6264
Δεν χρειάζεται να σκεφτούμε ακόμα την έννοια των παρενθέσεων `[]` και `forEach`. Θα τα μελετήσουμε αργότερα. Προς το παρόν, να θυμάστε μόνο το αποτέλεσμα του κώδικα: δείχνει `1` και ` 2`.
6365
6466
Τώρα, ας προσθέσουμε ενα «alert» πριν από τον κώδικα και * όχι * να τελειώσει με ένα ερωτηματικό:
67+
=======
68+
```js run
69+
alert("Hello");
70+
71+
[1, 2].forEach(alert);
72+
```
6573
6674
```js run no-beautify
67-
alert("There will be an error")
75+
alert("Hello")
6876
69-
[1, 2].forEach(alert)
77+
[1, 2].forEach(alert);
7078
```
7179
7280
Τώρα, εάν εκτελέσουμε τον κώδικα, εμφανίζεται μόνο το πρώτo 'alert' και στη συνέχεια έχουμε ένα σφάλμα!
@@ -75,22 +83,20 @@ Eάν προσθέσουμε ένα ερωτηματικό μετά `alert` τό
7583
```js run
7684
alert("All fine now");
7785
78-
[1, 2].forEach(alert)
79-
```
8086
81-
Τώρα έχουμε το μήνυμα "All fine now" που ακολουθείται από το "1" και το "2".
87+
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.
8288
89+
Τώρα έχουμε το μήνυμα "All fine now" που ακολουθείται από το "1" και το "2".
8390
8491
Το σφάλμα στην εκδοχή χωρίς ερωτηματικό εμφανίζεται επειδή η JavaScript δεν υποθέτει ένα ερωτηματικό πριν τις αγκύλες `[...]`.
8592
8693
Επομένως, επειδή το ερωτηματικό δεν εισάφεται αυτόματα, ο κώδικας στο παράδειγμα αντιμετωπίζεται ως μία μόνο δήλωση. Δείτε πώς το βλέπει το JavaScript engine:
8794
8895
```js run no-beautify
89-
alert("There will be an error")[1, 2].forEach(alert)
96+
alert("Hello")[1, 2].forEach(alert);
9097
```
9198
9299
Αλλά θα πρέπει να είναι δύο χωριστές δηλώσεις, όχι μία. Μια τέτοια συγχώνευση, στην περίπτωση αυτή, είναι απλώς λανθασμένη, εξ ου και το σφάλμα. Αυτό μπορεί να συμβεί και σε άλλες περιπτώσεις.
93-
````
94100
95101
Συνιστούμε να τοποθετείτε ερωτηματικά μεταξύ δηλώσεων ακόμα και αν διαχωρίζονται από νέες γραμμές. Αυτός ο κανόνας υιοθετείται ευρέως από την κοινότητα. Ας σημειώσουμε για μια ακόμη φορά - * είναι δυνατόν * να αφήνουμε τα ερωτηματικά τις περισσότερες φορές. Αλλά είναι ασφαλέστερο - ειδικά για έναν αρχάριο - να τα χρησιμοποιήσει.
96102
@@ -157,4 +163,4 @@ alert( 'World' );
157163

158164
Τα σχόλια αυξάνουν το συνολικό αποτύπωμα κώδικα, αλλά αυτό δεν είναι καθόλου πρόβλημα. Υπάρχουν πολλά εργαλεία που ελαχιστοποιούν τον κώδικα πριν από τη δημοσίευση σε έναν διακομιστή παραγωγής. Καταργούν σχόλια, επομένως δεν εμφανίζονται στα scr εργασίας. Συνεπώς, οι παρατηρήσεις δεν έχουν καθόλου αρνητικές επιπτώσεις στην παραγωγή.
159165

160-
Αργότερα στο σεμινάριο <info:code-quality>, θα υπάρχει ένα κεφάλαιο που εξηγεί επίσης πώς να γράψετε καλύτερα σχόλια.
166+
Αργότερα στο σεμινάριο <info:code-quality>, θα υπάρχει ένα κεφάλαιο που εξηγεί επίσης πώς να γράψετε καλύτερα σχόλια.

1-js/02-first-steps/04-variables/article.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ let message;
2323
```js
2424
let message;
2525

26-
*!*
26+
2727
message = 'Hello'; // αποθήκευσης μιας συμβολοσειράς
2828
*/!*
2929
```
@@ -232,7 +232,7 @@ num = 5; // η μεταβλητή "num" έχει δημιουργηθεί εφό
232232
alert(num); // 5
233233
```
234234

235-
Αυτή είναι μια κακή πρακτική και θα προκαλούσε σφάλμα στην strict mode:
235+
Αυτή είναι μια κακή πρακτική και θα προκαλούσε σφάλμα στην strict mode:
236236

237237
```js
238238
"use strict";
@@ -266,7 +266,7 @@ myBirthday = '01.01.2001'; // σφάλμα, δεν ξανα αναθέτουμε
266266
267267
Υπάρχει μια ευρέως διαδεδομένη πρακτική να χρησιμοποιείτε σταθερές ως ψευδώνυμα για τιμές που είναι δύσκολα στη απομνημονευση πριν από την εκτέλεση.
268268
269-
Αυτές τις μεταβλητές τις δηλώσουμε με κεφαλαία γράμματα και κάτω παύλες.
269+
Αυτές τις μεταβλητές τις δηλώσουμε με κεφαλαία γράμματα και κάτω παύλες.
270270
271271
Για παράδειγμα, ας φτιάξουμε σταθερές για χρώματα, επονομαζόμενa "web" (δεκαεξαδική) μορφή:
272272
@@ -302,7 +302,7 @@ const pageLoadTime = /* ο χρόνος που χρειάζεται για να
302302
303303
## Να λεμε τα πράγματα με το ονομά τους
304304
305-
Μιλώντας για μεταβλητές, υπάρχει ένα ακόμη πολύ σημαντικό γεγονός.
305+
Μιλώντας για μεταβλητές, υπάρχει ένα ακόμη πολύ σημαντικό γεγονός.
306306
307307
Ένα όνομα μεταβλητής πρέπει να έχει καθαρό, με προφανές νόημα, που περιγράφει τα δεδομένα που αποθηκεύει.
308308
@@ -319,7 +319,7 @@ const pageLoadTime = /* ο χρόνος που χρειάζεται για να
319319
- Κάντε ονόματα με μέγιστο περιγραφικό και συνοπτικό τρόπο. Παραδείγματα κακών ονομάτων είναι `δεδομένα` και `τιμή`. Τέτοια ονόματα δεν λένε τίποτα. Είναι να τα χρησιμοποιείτε σωστά, μόνο εάν το περιεχόμενο του κώδικα το καθιστά εξαιρετικά προφανές σε ποια δεδομένα ή αξία αναφέρεται η μεταβλητή.
320320
- Συμφωνείτε με όρους εντός της ομάδας σας και στο μυαλό σας. Εάν ένας επισκέπτης ιστότοπου ονομάζεται "χρήστης", θα πρέπει να ονομάσουμε σχετικές μεταβλητές "currentUser" ή "newUser" αντί για "currentVisitor" ή "newManInTown".
321321
322-
Ακούγεται απλό; Πράγματι είναι, αλλά η δημιουργία περιγραφικών και συνοπτικών ονομασίων μεταβλητών στην πράξη δεν είναι. Κάντε το.
322+
Ακούγεται απλό; Πράγματι είναι, αλλά η δημιουργία περιγραφικών και συνοπτικών ονομασίων μεταβλητών στην πράξη δεν είναι. Κάντε το.
323323
324324
```smart header="Επαναχρησιμοποιηση ή δημιουργία?"
325325
Και η τελευταία νότα. Υπάρχουν μερικοί τεμπέληδες προγραμματιστές που, αντί να δηλώνουν νέες μεταβλητές, τείνουν να επαναχρησιμοποιούν τις υπάρχουσες.
@@ -341,4 +341,4 @@ const pageLoadTime = /* ο χρόνος που χρειάζεται για να
341341
- `var` -- είναι παλιός τρόπος δήλωση της μεταβλητής. Κανονικά δεν το χρησιμοποιούμε καθόλου, αλλά θα καλύψουμε τις λεπτές διαφορές από το `let` στο κεφάλαιο <info:var>, σε περίπτωση που τα χρειάζεστε.
342342
- `const` --είναι όπως η `let`, αλλά η τιμή της δεν αλλάζει.
343343
344-
Οι μεταβλητές πρέπει να ονομάζονται με τέτοιο τρόπο ώστε να μας επιτρέπει να κατανοήσουμε εύκολα τι υπάρχει μέσα τους.
344+
Οι μεταβλητές πρέπει να ονομάζονται με τέτοιο τρόπο ώστε να μας επιτρέπει να κατανοήσουμε εύκολα τι υπάρχει μέσα τους.

0 commit comments

Comments
 (0)