From 1109132f09d75da9a28b649c7677bb6ce07c40c0 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:41:45 -0500 Subject: initial commit --- .../reference/operators/comma_operator/index.html | 154 +++++++++++ .../web/javascript/reference/operators/index.html | 301 +++++++++++++++++++++ 2 files changed, 455 insertions(+) create mode 100644 files/el/web/javascript/reference/operators/comma_operator/index.html create mode 100644 files/el/web/javascript/reference/operators/index.html (limited to 'files/el/web/javascript/reference/operators') diff --git a/files/el/web/javascript/reference/operators/comma_operator/index.html b/files/el/web/javascript/reference/operators/comma_operator/index.html new file mode 100644 index 0000000000..97e396cc1e --- /dev/null +++ b/files/el/web/javascript/reference/operators/comma_operator/index.html @@ -0,0 +1,154 @@ +--- +title: Τελεστής Κόμμα +slug: Web/JavaScript/Reference/Operators/Comma_Operator +tags: + - JavaScript + - Κόμμα + - Τελεστής + - Τελεστής Κόμμα +translation_of: Web/JavaScript/Reference/Operators/Comma_Operator +--- +
{{jsSidebar("Τελεστές")}}
+ +

Ο τελεστής κόμμα αποτιμά κάθε τελεστέο του (από τα αριστερά προς τα δεξιά) και επιστρέφει τη τιμή του τελευταίου τελεστέου.

+ +

Σύνταξη

+ +
έκφραση1, έκφραση2, έκφραση3...
+ +

Παράμετροι

+ +
+
έκφραση1, έκφραση2, έκφραση3...
+
Οποιαδήποτε έκφραση.
+
+ +

Περιγραφή

+ +

Μπορείτε να χρησιμοποιήσετε τον τελεστή κόμμα όποτε θέλετε να συμπεριλάβετε πολλαπλές εκφράσεις σε σημείο που απαιτείται μία έκφραση. Η πιο κοινή χρήση αυτού του τελεστή είναι η προμήθεια πολλαπλών παραμέτρων σε έναν for βρόχο.

+ +

Παραδείγματα

+ +

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

+ +

Ο ακόλουθος κώδικας εκτυπώνει τις τιμές των διαγώνιων στοιχείων του πίνακα:

+ +
for (var i = 0, j = 9; i <= 9; i++, j--)
+  console.log('a[' + i + '][' + j + '] = ' + a[i][j]);
+ +

Παρατηρήστε ότι το κόμμα στις αναθέσεις όπως στην var δήλωση μπορεί να μην έχει το κανονικό αποτέλεσμα του τελεστή κόμμα επειδή δεν υπάρχει μέσα σε έκφραση. Στο ακόλουθο παράδειγμα, το a παίρνει την τιμή του b = 3 (η οποία είναι 3), αλλά η έκφραση c = 4 επίσης αποτιμάται και το αποτέλεσμά της επιστρέφει στην κονσόλα (δηλαδή, 4). Αυτό οφείλεται στην προτεραιότητα τελεστών και προσεταιριστικότητα.

+ +
// Παρατηρήστε οτι τα παρακάτω δημιουργούν globals το οποίο απαγορεύεται στο strict mode.
+
+a = b = 3, c = 4; // Επιστρέφει 4 στην κονσόλα
+console.log(a); // 3 (αριστερότερο)
+
+x = (y = 5, z = 6); // Επιστρέφει 6 στην κονσόλα
+console.log(x); // 6 (δεξιότερο)
+
+ +

Ο τελεστής κόμμα είναι τελείως διαφορετικός από το κόμμα μέσα σε πίνακες, αντικείμενα, και ορίσματα και παραμέτρους συνάρτησης.

+ +

Επεξεργασία και επιστροφή

+ +

Ένα παράδειγμα ακόμα που μπορεί να κάνει κάποιος με τον τελεστή κόμμα είναι επεξεργασία πρίν την επιστροφή. Όπως αναφέρθηκε, μόνο το τελευταίο στοιχείο θα γυρίσει, πλην όμως, όλα τα άλλα πρόκειται να αποτιμηθούν εξίσου. Οπότε, κάποιος θα μπορούσε να κάνει:

+ +
function myFunc() {
+  var x = 0;
+
+  return (x += 1, x); // Ίδιο με το return ++x;
+}
+ +

Προδιαγραφές

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ΠροδιαγραφήΚατάστασηΣχόλιο
{{SpecName('ESDraft', '#sec-comma-operator', 'Comma operator')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-comma-operator', 'Comma operator')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-11.14', 'Comma operator')}}{{Spec2('ES5.1')}} 
{{SpecName('ES1', '#sec-11.14', 'Comma operator')}}{{Spec2('ES1')}}Αρχικός Ορισμός
+ +

Συμβατότητα Προγράμματος Περιήγησης

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
ΧαρακτηριστικόChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Βασική Υποστήριξη{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}3.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
ΧαρακτηριστικόAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Βασική Υποστήριξη{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Δείτε επίσης

+ + diff --git a/files/el/web/javascript/reference/operators/index.html b/files/el/web/javascript/reference/operators/index.html new file mode 100644 index 0000000000..9ed1cba01e --- /dev/null +++ b/files/el/web/javascript/reference/operators/index.html @@ -0,0 +1,301 @@ +--- +title: Expressions and operators +slug: Web/JavaScript/Reference/Operators +tags: + - JavaScript + - εκφράσεις + - τελεστές +translation_of: Web/JavaScript/Reference/Operators +--- +
{{jsSidebar("Operators")}}
+ +

Στο κεφάλαιο αυτό περιγράφονται όλοι οι τελεστές, οι εκφράσεις και οι λέξεις κλειδιά της JavaScript.

+ +

Εκφράσεις και τελεστές ανά κατηγορία

+ +

Για αλφαβητική ταξινόμηση δείτε το μενού στα αριστερά.

+ +

Πρωταρχικές εκφράσεις

+ +

Βασικές λέξεις κλειδιά και γενικές εκφράσεις στην JavaScript.

+ +
+
{{jsxref("Operators/this", "this")}}
+
Η λέξη κλειδί this αναφέρεται στο προγραμματιστικό πλαίσιο της εκάστοτε συνάρτησης.
+
{{jsxref("Operators/function", "function")}}
+
Η λέξη κλειδί function ορίζει μια εκφραση δήλωσης συνάρτησης (function).
+
{{jsxref("Operators/class", "class")}}
+
Η λέξη κλειδί class ορίζει μια έκφραση δήλωσης κλάσης(class).
+
{{jsxref("Operators/function*", "function*")}}
+
Η λέξη κλειδί function* ορίζει μια έκφραση δήλωσης συνάρτησης γεννήτριας (generator function).
+
{{jsxref("Operators/yield", "yield")}}
+
Διακόπτει και συνεχίζει μια συνάρτηση γεννήτρια.
+
{{jsxref("Operators/yield*", "yield*")}}
+
Αναθέτει σε μια άλλη συνάρτηση γεννήτριας ή σε κάποιο επαναλήψιμο αντικείμενο.
+
{{experimental_inline}} {{jsxref("Operators/async_function", "async function*")}}
+
Η async function ορίζει μια έκφραση δήλωσης ασυγχρονης συνάρτησης (async function).
+
{{experimental_inline}} {{jsxref("Operators/await", "await")}}
+
Διακόπτει και συνεχίζει μια ασύγχρονη συνάρτηση, και περιμένει την ασύχρονη απάντηση/απόρριψη από αυτή.
+
{{jsxref("Global_Objects/Array", "[]")}}
+
Βασική σύνταξη αρχικοποίησης ενός πίνακα (Array).
+
{{jsxref("Operators/Object_initializer", "{}")}}
+
Βασική σύνταξη αρχικοποίησης ενός αντικειμένου (Object).
+
{{jsxref("Global_Objects/RegExp", "/ab+c/i")}}
+
Βασική σύνταξη αρχικοποίησης μιας κοινής έκφρασης (Regular Expression).
+
{{jsxref("Operators/Grouping", "( )")}}
+
Τελεστής ομαδοποίησης.
+
+ +

Εκφράσεις αριστερής πλευράς (Left-hand-side)

+ +

Οι τιμές στο αριστερό μέρος αποτελούν τον προορισμό της ανάθεσης.

+ +
+
{{jsxref("Operators/Property_accessors", "Property accessors", "", 1)}}
+
Οι τελεστές μέλους παρέχουν πρόσβαση στις ιδιότητες ή στις μεθόδους ενός αντικειμένου.
+ (object.property and object["property"]).
+
{{jsxref("Operators/new", "new")}}
+
Ο τελεστής new δημιουργεί ένα στιγμιότυπο ενός κατασκευαστή (constructor).
+
new.target
+
Στους κατασκευαστές, new.target αναφέρεται στους κατασκευαστές που κλήθηκαν από το {{jsxref("Operators/new", "new")}}.
+
{{jsxref("Operators/super", "super")}}
+
Η λέξη κλειδί super καλεί τον κατασκευαστή του γονέα (parent constructor).
+
{{jsxref("Operators/Spread_operator", "...obj")}}
+
Η σύνταξη διάδοσης (Spread syntax) επιτρέπει σε μια έκφραση να εξαπλωθεί σε σημεία όπου αναμένονται πολλαπλά ορίσματα (πχ. κλήση συνάρτησης) ή πολλαπλά στοιχεία (πχ αρχική δήλωση πινάκων).
+
+ +

Επαυξηση και μείωση

+ +

Τελεστές Postfix/prefix επαύξησης και  postfix/prefix μείωσης.

+ +
+
{{jsxref("Operators/Arithmetic_Operators", "A++", "#Increment")}}
+
Τελεστής αύξησης μετά την μεταβλητή (Postfix).
+
{{jsxref("Operators/Arithmetic_Operators", "A--", "#Decrement")}}
+
Τελεστής μείωσης μετά την μεταβλητή (Postfix).
+
{{jsxref("Operators/Arithmetic_Operators", "++A", "#Increment")}}
+
Τελεστής αύξησης πριν την μεταβλητή (Prefix).
+
{{jsxref("Operators/Arithmetic_Operators", "--A", "#Decrement")}}
+
Τελεστής μείωσης πριν την μεταβλητή (Prefix).
+
+ +

Μοναδιαίοι τελεστές

+ +

Μοναδιαία είναι η διαδικασία που απαιτεί μόνο εναν τελεστή.

+ +
+
{{jsxref("Operators/delete", "delete")}}
+
Ο τελεστής delete διαγράφει ένα χαρακτηριστικό από ένα αντικείμενο.
+
{{jsxref("Operators/void", "void")}}
+
Ο τελεστής void απορρίπτει την επιστρεφόμενη τιμή μιας έκφρασης.
+
{{jsxref("Operators/typeof", "typeof")}}
+
Ο τελεστής typeof προσδιορίζει τον τύπο ενός δεδομένου αντικειμένου.
+
{{jsxref("Operators/Arithmetic_Operators", "+", "#Unary_plus")}}
+
Ο τελεστής unary plus μετατρέπει τον όρο πράξης του σε αριθμό (Number type).
+
{{jsxref("Operators/Arithmetic_Operators", "-", "#Unary_negation")}}
+
Ο τελεστής unary negation μετατρέπει τον όρο πράξης του σε αριθμό (Number type) και ακολούθως τον μετατρέπει σε αρνητικό.
+
{{jsxref("Operators/Bitwise_Operators", "~", "#Bitwise_NOT")}}
+
Τελεστής άρνησης σε επίπεδο bit (Bitwise NOT).
+
{{jsxref("Operators/Logical_Operators", "!", "#Logical_NOT")}}
+
Τελεστής λογικής άρνησης (Logical NOT).
+
+ +

Αριθμητικοί τελεστές

+ +

Οι αριθμητικοί τελεστές δέχονται αριθμητικές τιμές σαν ορίσματα πράξης (είτε αριθμούς, είτε μεταβλητές) και επιστρέφουν μια απλή αριθμητική τιμή.

+ +
+
{{jsxref("Operators/Arithmetic_Operators", "+", "#Addition")}}
+
Τελεστής πρόσθεσης.
+
{{jsxref("Operators/Arithmetic_Operators", "-", "#Subtraction")}}
+
Τελεστής αφαίρεσης.
+
{{jsxref("Operators/Arithmetic_Operators", "/", "#Division")}}
+
Τελεστής διαίρεσης.
+
{{jsxref("Operators/Arithmetic_Operators", "*", "#Multiplication")}}
+
Τελεστής πολλαπλασιασμού.
+
{{jsxref("Operators/Arithmetic_Operators", "%", "#Remainder")}}
+
Τελεστής υπολοίπου διαίρεσης.
+
+ +
+
{{jsxref("Operators/Arithmetic_Operators", "**", "#Exponentiation")}}
+
Εκθετικός τελεστής.
+
+ +

Σχεσιακοί τελεστές

+ +

Ενας τελεστής σύγκρισης συγκρίνει τα ορίσματα πράξης και επιστρέφει μια Boolean τιμή βασισμένη στο αν η σύγκριση είναι αληθής.

+ +
+
{{jsxref("Operators/in", "in")}}
+
Ο τελεστής in προσδιορίζει αν ενα αντικείμενο έχει ένα συγκεκριμένο χαρακτηριστικό.
+
{{jsxref("Operators/instanceof", "instanceof")}}
+
Ο τελεστής instanceof προσδιορίζει αν ένα αντικείμενο είναι στιγμιότυπο ενός άλλου αντικειμένου.
+
{{jsxref("Operators/Comparison_Operators", "<", "#Less_than_operator")}}
+
Τελεστής 'μικρότερο από'.
+
{{jsxref("Operators/Comparison_Operators", ">", "#Greater_than_operator")}}
+
Τελεστής 'μεγαλύτερο από'.
+
{{jsxref("Operators/Comparison_Operators", "<=", "#Less_than_or_equal_operator")}}
+
Τελεστής 'μικρότερο από ή ίσο'.
+
{{jsxref("Operators/Comparison_Operators", ">=", "#Greater_than_or_equal_operator")}}
+
Τελεστής 'μεγαλύτερο από ή ίσο'.
+
+ +
+

Σημείωση: το =>  δεν είναι τελεστής αλλά αποτελεί σημειογραφία για τις Arrow functions.

+
+ +

Τελεστές ισότητας

+ +

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

+ +
+
{{jsxref("Operators/Comparison_Operators", "==", "#Equality")}}
+
Τελεστής ισότητας.
+
{{jsxref("Operators/Comparison_Operators", "!=", "#Inequality")}}
+
Τελεστής ανισότητας, διαφορετικότητας.
+
{{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}
+
Τελεστής ισότητας ταυτότητας.
+
{{jsxref("Operators/Comparison_Operators", "!==", "#Nonidentity")}}
+
Τελεστής ανισότητας ταυτότητας.
+
+ +

Τελεστές κύλισης bits

+ +

Λειτουργία κύλισης όλων των bits των ορισμάτων.

+ +
+
{{jsxref("Operators/Bitwise_Operators", "<<", "#Left_shift")}}
+
Τελεστής αριστερής κύλισης bit (Bitwise left shift).
+
{{jsxref("Operators/Bitwise_Operators", ">>", "#Right_shift")}}
+
Τελεστής δεξιάς κύλισης bit (Bitwise right shift).
+
{{jsxref("Operators/Bitwise_Operators", ">>>", "#Unsigned_right_shift")}}
+
Τελεστής δεξιάς κύλισης bit χωρίς πρόσημο (Bitwise right shift).
+
+ +

Δυαδικοί τελεστές bits

+ +

Οι δυαδικοί τελεστές bits χειριζονται τα ορίσματα τους σαν σετ απο 32 bits (0,1) και επιστρέφουν μια αριθμητική τιμή.

+ +
+
{{jsxref("Operators/Bitwise_Operators", "&", "#Bitwise_AND")}}
+
Bitwise AND.
+
{{jsxref("Operators/Bitwise_Operators", "|", "#Bitwise_OR")}}
+
Bitwise OR.
+
{{jsxref("Operators/Bitwise_Operators", "^", "#Bitwise_XOR")}}
+
Bitwise XOR.
+
+ +

Δυαδικοί λογικοί τελεστές

+ +

Οι λογικοί τελεστές τυπικά χρησιμοποιούνται με boolean (λογικές) τιμές, και επιστρέφουν μια επίσης boolean τιμή.

+ +
+
{{jsxref("Operators/Logical_Operators", "&&", "#Logical_AND")}}
+
Λογικό 'και' (AND).
+
{{jsxref("Operators/Logical_Operators", "||", "#Logical_OR")}}
+
Λογικό 'ή' (OR).
+
+ +

Τριαδικός υποθετικός τελεστής

+ +
+
{{jsxref("Operators/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}
+
+

Ο υποθετικός τελεστής επιστρέφει μια εκ των δύο τιμών, βάση της λογική τιμής της δεδομένης συνθήκης.

+
+
+ +

Τελεστές ανάθεσης.

+ +

Ένας τελεστής ανάθεσης αναθέτει μια τιμή στο αριστερό όρισμα βάση της τιμής του δεξιού ορίσματος.

+ +
+
{{jsxref("Operators/Assignment_Operators", "=", "#Assignment")}}
+
Τελεστής ανάθεσης.
+
{{jsxref("Operators/Assignment_Operators", "*=", "#Multiplication_assignment")}}
+
Τελεστής ανάθεσης πολλαπλάσιου.
+
{{jsxref("Operators/Assignment_Operators", "/=", "#Division_assignment")}}
+
Τελεστής ανάθεσης διαιρεταίου.
+
{{jsxref("Operators/Assignment_Operators", "%=", "#Remainder_assignment")}}
+
Τελεστής ανάθεσης υπολοίπου.
+
{{jsxref("Operators/Assignment_Operators", "+=", "#Addition_assignment")}}
+
Τελεστής ανάθεσης αθροίσματος.
+
{{jsxref("Operators/Assignment_Operators", "-=", "#Subtraction_assignment")}}
+
Τελεστής ανάθεσης αφαίρεσης.
+
{{jsxref("Operators/Assignment_Operators", "<<=", "#Left_shift_assignment")}}
+
Τελεστής ανάθεσης αριστερής κύλισης bit.
+
{{jsxref("Operators/Assignment_Operators", ">>=", "#Right_shift_assignment")}}
+
Τελεστής ανάθεσης δεξιάς κύλισης bit.
+
{{jsxref("Operators/Assignment_Operators", ">>>=", "#Unsigned_right_shift_assignment")}}
+
Τελεστής ανάθεσης δεξιάς κύλισης bit χωρίς πρόσημο.
+
{{jsxref("Operators/Assignment_Operators", "&=", "#Bitwise_AND_assignment")}}
+
Τελεστής ανάθεσης λογικού AND σε επίπεδο bits.
+
{{jsxref("Operators/Assignment_Operators", "^=", "#Bitwise_XOR_assignment")}}
+
Τελεστής ανάθεσης λογικού XOR σε επίπεδο bits.
+
{{jsxref("Operators/Assignment_Operators", "|=", "#Bitwise_OR_assignment")}}
+
Τελεστής ανάθεσης λογικού OR σε επίπεδο bits.
+
{{jsxref("Operators/Destructuring_assignment", "[a, b] = [1, 2]")}}
+ {{jsxref("Operators/Destructuring_assignment", "{a, b} = {a:1, b:2}")}}
+
+

Η ανάθεση διάσπασης(destructuring) επιτρέπει την απευθείας ανάθεση των  χαρακτηριστικών, ενός αντικειμένου ή ενός πίνακα, σε μεταβλητές.

+
+
+ +

Τελεστης κόμμα ',' (comma)

+ +
+
{{jsxref("Operators/Comma_Operator", ",")}}
+
Ο τελεστής κόμμα(',') επιτρέπει σε πολλαπλές εκφράσεις να εκτιμηθούν σε μία μόνο δήλωση, και επιστρέφει το αποτέλεσμα της τελευταίας εκφρασης.
+
+ +

Non-standard features

+ +
+
{{non-standard_inline}} {{jsxref("Operators/Legacy_generator_function", "Legacy generator function", "", 1)}}
+
Η λέξη κλειδί function μπορεί να χρησιμοποιηθεί για να ορίσει για συνάρτηση γεννήτρια μέσα σε μια έκφραση. Για να γίνει η συνάρτηση, συναρτηση γεννήτριας το σώμα της θα πρέπει να περιέχει τουλαχιστον μια  {{jsxref("Operators/yield", "yield")}} εκφραση.
+
{{non-standard_inline}} {{jsxref("Operators/Expression_closures", "Expression closures", "", 1)}}
+
The expression closure syntax is a shorthand for writing simple function.
+
{{non-standard_inline}} {{jsxref("Operators/Array_comprehensions", "[for (x of y) x]")}}
+
Array comprehensions.
+
{{non-standard_inline}} {{jsxref("Operators/Generator_comprehensions", "(for (x of y) y)")}}
+
Generator comprehensions.
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1', '#sec-11', 'Expressions')}}{{Spec2('ES1')}}Initial definition
{{SpecName('ES5.1', '#sec-11', 'Expressions')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}{{Spec2('ES6')}}New: Spread operator, destructuring assignment, super keyword.
{{SpecName('ESDraft', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}{{Spec2('ESDraft')}} 
+ +

See also

+ + -- cgit v1.2.3-54-g00ecf