Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 12 additions & 23 deletions 1-js/02-first-steps/10-ifelse/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ if (1) { // 1 είναι truthy
}
```

Μπορούμε επίσης να περάσουμε μια προ-αξιολογημένη τιμή boolean στο `if`, έτσι:
Μπορούμε επίσης να περάσουμε μια προ-αξιολογημένη τιμή boolean στο `if`, έτσι:

```js
let cond = (year == 2015); // η ισότητα αξιολογείται true ή false
let cond = (year == 2015); // η ισότητα αξιολογείται true ή false

if (cond) {
...
Expand All @@ -68,11 +68,7 @@ if (cond) {

## Η ρήτρα "else"

<<<<<<< HEAD
Η δήλωση `if` μπορεί να περιέχει ένα προαιρετικό μπλοκ "else". Εκτελείται όταν η συνθήκη είναι λανθασμένη.
=======
The `if` statement may contain an optional "else" block. It executes when the condition is falsy.
>>>>>>> fc3f811c03ca97ff8304271bb2b918413bed720f

Για παράδειγμα:
```js run
Expand All @@ -87,9 +83,9 @@ if (year == 2015) {

## Διάφορες συνθήκες: "else if"

Μερικές φορές, θα θέλαμε να δοκιμάσουμε πολλές παραλλαγές μιας κατάστασης. Η ρήτρα `else if` μας επιτρέπει να το κάνουμε αυτό.
Μερικές φορές, θα θέλαμε να δοκιμάσουμε πολλές παραλλαγές μιας κατάστασης. Η ρήτρα `else if` μας επιτρέπει να το κάνουμε αυτό.

Για παράδειγμα:
Για παράδειγμα:

```js run
let year = prompt('In which year was the ECMAScript-2015 specification published?', '');
Expand All @@ -103,9 +99,9 @@ if (year < 2015) {
}
```

Στον παραπάνω κώδικα, η JavaScript ελέγχει πρώτα το `year < 2015. Εάν αυτό είναι falsy, πηγαίνει στην επόμενη συνθήκη `year > 2015`. Εάν αυτό είναι επίσης falsy, δείχνει το τελευταίο `alert`.
Στον παραπάνω κώδικα, η JavaScript ελέγχει πρώτα το `year < 2015. Εάν αυτό είναι falsy, πηγαίνει στην επόμενη συνθήκη `year > 2015`. Εάν αυτό είναι επίσης falsy, δείχνει το τελευταίο `alert`.

Μπορεί να υπάρχουν περισσότερα μπλοκ `else if`. Το τελικό `else` είναι προαιρετικό.
Μπορεί να υπάρχουν περισσότερα μπλοκ `else if`. Το τελικό `else` είναι προαιρετικό.

## Υπό συνθήκη τελεστής '?'

Expand Down Expand Up @@ -139,7 +135,7 @@ let result = condition ? value1 : value2;

Η `condition` αξιολογείται: εάν είναι αλήθεια τότε επιστρέφεται η `value1`, διαφορετικά -- `value2`

Για παράδειγμα:
Για παράδειγμα:

```js
let accessAllowed = (age > 18) ? true : false;
Expand All @@ -151,7 +147,7 @@ let accessAllowed = (age > 18) ? true : false;

```js
// ο τελεστής σύγκρισης "age > 18" εκτελεί πρώτα ούτως ή άλλως
// (δεν χρειάζεται να το τυλίξουμε σε παρένθεση)
// (δεν χρειάζεται να το τυλίξουμε σε παρένθεση)
let accessAllowed = age > 18 ? true : false;
```

Expand Down Expand Up @@ -184,17 +180,10 @@ alert( message );

Μπορεί να είναι δύσκολο στην αρχή να κατανοήσουμε τι συμβαίνει. Αλλά μετά από μια πιο προσεκτική ματιά, μπορούμε να δούμε ότι είναι απλώς μια συνηθισμένη σειρά δοκιμών:

<<<<<<< HEAD
1. Το πρώτο ερωτηματικό ελέγχει εάν `age < 3`.
2. Εάν είναι true -- τότε επιστρέφει `'Hi, baby!'`. Διαφορετικά, συνεχίζει στην έκφραση μετά την άνω και κάτω τελεία `'Hi, baby!'`, ελέγχοντας `age < 18`.
3. Εάν αυτό είναι true -- επιστρέφει `'Hello!'`. Διαφορετικά, συνεχίζει στην έκφραση μετά την επόμενη άνω και κάτω τελεία '":"', ελέγχοντας `age < 100`.
4. Αν αυτό είναι true -- επιστρέφει `'Greetings!'`. Διαφορετικά, συνεχίζει στην έκφραση μετά την τελευταία άνω και κάτω τελεία '":"', επιστρέφοντας `'What an unusual age!'`.
=======
1. The first question mark checks whether `age < 3`.
2. If true -- it returns `'Hi, baby!'`. Otherwise, it continues to the expression after the colon ":", checking `age < 18`.
3. If that's true -- it returns `'Hello!'`. Otherwise, it continues to the expression after the next colon ":", checking `age < 100`.
4. If that's true -- it returns `'Greetings!'`. Otherwise, it continues to the expression after the last colon ":", returning `'What an unusual age!'`.
>>>>>>> 1ce5644a15ee141fbe78c0fb79c8f40d870d7043

Δείτε πώς φαίνεται αυτό `if..else`:

Expand All @@ -212,7 +201,7 @@ if (age < 3) {

## Μη παραδοσιακή χρήση του '?'

Μερικές φορές το ερωτηματικό `?` χρησιμοποιείται ως αντικατάσταση του `if`:
Μερικές φορές το ερωτηματικό `?` χρησιμοποιείται ως αντικατάσταση του `if`:

```js run no-beautify
let company = prompt('Which company created JavaScript?', '');
Expand All @@ -223,15 +212,15 @@ let company = prompt('Which company created JavaScript?', '');
*/!*
```

Ανάλογα με την κατάσταση `company == 'Netscape'`, εκτελείται είτε η πρώτη είτε η δεύτερη έκφραση μετά το `?` και εμφανίζει μια ειδοποίηση.
Ανάλογα με την κατάσταση `company == 'Netscape'`, εκτελείται είτε η πρώτη είτε η δεύτερη έκφραση μετά το `?` και εμφανίζει μια ειδοποίηση.

Δεν αποδίδουμε αποτέλεσμα σε μια μεταβλητή εδώ. Αντ 'αυτού, εκτελούμε διαφορετικό κώδικα ανάλογα με την κατάσταση.

**Δεν συνιστάται η χρήση του τελεστή ερωτηματικών με αυτόν τον τρόπο.**

Η σημειογραφία είναι μικρότερη από την αντίστοιχη δήλωση `if`, η οποία απευθύνεται σε ορισμένους προγραμματιστές. Αλλά είναι λιγότερο ευανάγνωστο.

Εδώ είναι ο ίδιος κωδικός που χρησιμοποιεί το `if` για σύγκριση:
Εδώ είναι ο ίδιος κωδικός που χρησιμοποιεί το `if` για σύγκριση:

```js run no-beautify
let company = prompt('Which company created JavaScript?', '');
Expand All @@ -245,7 +234,7 @@ if (company == 'Netscape') {
*/!*
```

Τα μάτια μας σαρώνουν τον κώδικα κάθετα. Τα μπλοκ κώδικα που καλύπτουν πολλές γραμμές είναι πιο κατανοητά από ένα μακρύ, οριζόντιο σύνολο οδηγιών.
Τα μάτια μας σαρώνουν τον κώδικα κάθετα. Τα μπλοκ κώδικα που καλύπτουν πολλές γραμμές είναι πιο κατανοητά από ένα μακρύ, οριζόντιο σύνολο οδηγιών.

Ο σκοπός του τελεστή ερωτηματικών `?` είναι να επιστρέψει μια τιμή ή κάτι ανάλογα με την κατάστασή της. Χρησιμοποιήστε το για ακριβώς αυτό. Χρησιμοποιήστε το `if` όταν πρέπει να εκτελέσετε διαφορετικούς κλάδους κώδικα.

4 changes: 1 addition & 3 deletions 1-js/05-data-types/05-array-methods/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ alert( arr.includes(1) ); // true

Please note that `indexOf` uses the strict equality `===` for comparison. So, if we look for `false`, it finds exactly `false` and not the zero.

If we want to check if `item` exists in the array, and don't need the exact index, then `arr.includes` is preferred.
If we want to check if `item` exists in the array, and don't need the index, then `arr.includes` is preferred.

The method [arr.lastIndexOf](mdn:js/Array/lastIndexOf) is the same as `indexOf`, but looks for from right to left.

Expand Down Expand Up @@ -338,8 +338,6 @@ alert(users.findIndex(user => user.name == 'John')); // 0
alert(users.findLastIndex(user => user.name == 'John')); // 3
```



### filter

The `find` method looks for a single (first) element that makes the function return `true`.
Expand Down
2 changes: 1 addition & 1 deletion 5-network/10-long-polling/article.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Long polling

Long polling is the simplest way of having persistent connection with server, that doesn't use any specific protocol like WebSocket or Server Side Events.
Long polling is the simplest way of having persistent connection with server, that doesn't use any specific protocol like WebSocket or Server Sent Events.

Being very easy to implement, it's also good enough in a lot of cases.

Expand Down