aboutsummaryrefslogtreecommitdiff
path: root/files/el/web/javascript/reference/operators/index.html
blob: 9ed1cba01e6979ff0cf3ef19842844a3b10d0344 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
---
title: Expressions and operators
slug: Web/JavaScript/Reference/Operators
tags:
  - JavaScript
  - εκφράσεις
  - τελεστές
translation_of: Web/JavaScript/Reference/Operators
---
<div>{{jsSidebar("Operators")}}</div>

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

<h2 id="Εκφράσεις_και_τελεστές_ανά_κατηγορία">Εκφράσεις και τελεστές ανά κατηγορία</h2>

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

<h3 id="Πρωταρχικές_εκφράσεις">Πρωταρχικές εκφράσεις</h3>

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

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

<h3 id="Εκφράσεις_αριστερής_πλευράς_(Left-hand-side)">Εκφράσεις αριστερής πλευράς (Left-hand-side)</h3>

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

<dl>
 <dt>{{jsxref("Operators/Property_accessors", "Property accessors", "", 1)}}</dt>
 <dd>Οι τελεστές μέλους παρέχουν πρόσβαση στις ιδιότητες ή στις μεθόδους ενός αντικειμένου.<br>
 (<code>object.property</code> and <code>object["property"]</code>).</dd>
 <dt>{{jsxref("Operators/new", "new")}}</dt>
 <dd>Ο τελεστής <code>new</code> δημιουργεί ένα στιγμιότυπο ενός κατασκευαστή (constructor).</dd>
 <dt><a href="/en-US/docs/Web/JavaScript/Reference/Operators/new.target">new.target</a></dt>
 <dd>Στους κατασκευαστές, <code>new.target</code> αναφέρεται στους κατασκευαστές που κλήθηκαν από το {{jsxref("Operators/new", "new")}}.</dd>
 <dt>{{jsxref("Operators/super", "super")}}</dt>
 <dd>Η λέξη κλειδί <code>super</code> καλεί τον κατασκευαστή του γονέα (parent constructor).</dd>
 <dt>{{jsxref("Operators/Spread_operator", "...obj")}}</dt>
 <dd>Η σύνταξη διάδοσης (Spread syntax) επιτρέπει σε μια έκφραση να εξαπλωθεί σε σημεία όπου αναμένονται πολλαπλά ορίσματα (πχ. κλήση συνάρτησης) ή πολλαπλά στοιχεία (πχ αρχική δήλωση πινάκων).</dd>
</dl>

<h3 id="Επαυξηση_και_μείωση">Επαυξηση και μείωση</h3>

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

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

<h3 id="Μοναδιαίοι_τελεστές">Μοναδιαίοι τελεστές</h3>

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

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

<h3 id="Αριθμητικοί_τελεστές">Αριθμητικοί τελεστές</h3>

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

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

<dl>
 <dt>{{jsxref("Operators/Arithmetic_Operators", "**", "#Exponentiation")}}</dt>
 <dd>Εκθετικός τελεστής.</dd>
</dl>

<h3 id="Σχεσιακοί_τελεστές">Σχεσιακοί τελεστές</h3>

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

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

<div class="note">
<p><strong>Σημείωση: </strong>το <strong>=&gt;</strong>  δεν είναι τελεστής αλλά αποτελεί σημειογραφία για τις <a href="/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">Arrow functions</a>.</p>
</div>

<h3 id="Τελεστές_ισότητας">Τελεστές ισότητας</h3>

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

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

<h3 id="Τελεστές_κύλισης_bits">Τελεστές κύλισης bits</h3>

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

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

<h3 id="Δυαδικοί_τελεστές_bits">Δυαδικοί τελεστές bits</h3>

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

<dl>
 <dt>{{jsxref("Operators/Bitwise_Operators", "&amp;", "#Bitwise_AND")}}</dt>
 <dd>Bitwise AND.</dd>
 <dt>{{jsxref("Operators/Bitwise_Operators", "|", "#Bitwise_OR")}}</dt>
 <dd>Bitwise OR.</dd>
 <dt>{{jsxref("Operators/Bitwise_Operators", "^", "#Bitwise_XOR")}}</dt>
 <dd>Bitwise XOR.</dd>
</dl>

<h3 id="Δυαδικοί_λογικοί_τελεστές">Δυαδικοί λογικοί τελεστές</h3>

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

<dl>
 <dt>{{jsxref("Operators/Logical_Operators", "&amp;&amp;", "#Logical_AND")}}</dt>
 <dd>Λογικό 'και' (AND).</dd>
 <dt>{{jsxref("Operators/Logical_Operators", "||", "#Logical_OR")}}</dt>
 <dd>Λογικό 'ή' (OR).</dd>
</dl>

<h3 id="Τριαδικός_υποθετικός_τελεστής">Τριαδικός υποθετικός τελεστής</h3>

<dl>
 <dt>{{jsxref("Operators/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}</dt>
 <dd>
 <p>Ο υποθετικός τελεστής επιστρέφει μια εκ των δύο τιμών, βάση της λογική τιμής της δεδομένης συνθήκης.</p>
 </dd>
</dl>

<h3 id="Τελεστές_ανάθεσης.">Τελεστές ανάθεσης.</h3>

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

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

<h3 id="Τελεστης_κόμμα_''_(comma)">Τελεστης κόμμα ',' (comma)</h3>

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

<h3 id="Non-standard_features">Non-standard features</h3>

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

<h2 id="Specifications">Specifications</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('ES1', '#sec-11', 'Expressions')}}</td>
   <td>{{Spec2('ES1')}}</td>
   <td>Initial definition</td>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-11', 'Expressions')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td> </td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td>New: Spread operator, destructuring assignment, <code>super</code> keyword.</td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td> </td>
  </tr>
 </tbody>
</table>

<h2 id="See_also">See also</h2>

<ul>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">Operator precedence</a></li>
</ul>