|
1153 | 1153 |
|
1154 | 1154 | 7. <a name="misc">Misc</a>
|
1155 | 1155 |
|
1156 |
| - This section will serve to illustrate ideas and concepts that should not be considered dogma, but instead exists to encourage questioning practices in an attempt to find better ways to do common JavaScript programming tasks. |
| 1156 | + Αυτή η ενότητα θα χρησιμεύσει για να Εικονογραφηθούν ιδέες και έννοιες που δεν πρέπει να θεωρούνται δόγμα, αλλά αντίθετα υπάρχουν για να ενθαρρύνουμε τις πρακτικές αμφισβήτησης σε μια προσπάθεια να βρούμε καλύτερους τρόπους για να κάνουμε κοινές εργασίες προγραμματισμού JavaScript. |
1157 | 1157 |
|
1158 |
| - A. Using `switch` should be avoided, modern method tracing will blacklist functions with switch statements |
| 1158 | + A. Η χρήση του `switch` πρέπει να αποφεύγεται, ο σύγχρονος εντοπισμός μεθόδων θα περιλαμβάνει μαύρες λίστες με εντολές μεταγωγής |
1159 | 1159 |
|
1160 |
| - There seems to be drastic improvements to the execution of `switch` statements in latest releases of Firefox and Chrome. |
| 1160 | + Φαίνεται να υπάρχουν δραστικές βελτιώσεις στην εκτέλεση των δηλώσεων `switch` στις τελευταίες εκδόσεις του Firefox και του Chrome. |
1161 | 1161 | http://jsperf.com/switch-vs-object-literal-vs-module
|
1162 | 1162 |
|
1163 |
| - Notable improvements can be witnessed here as well: |
| 1163 | + Σημαντικές βελτιώσεις μπορούν να παρατηρηθούν και εδώ: |
1164 | 1164 | https://github.com/rwldrn/idiomatic.js/issues/13
|
1165 | 1165 |
|
1166 | 1166 | ```javascript
|
1167 | 1167 |
|
1168 | 1168 | // 7.A.1.1
|
1169 |
| - // An example switch statement |
| 1169 | + // Ένα παράδειγμα switch statement |
1170 | 1170 |
|
1171 | 1171 | switch( foo ) {
|
1172 | 1172 | case "alpha":
|
|
1176 | 1176 | beta();
|
1177 | 1177 | break;
|
1178 | 1178 | default:
|
1179 |
| - // something to default to |
| 1179 | + // κάτι στο οποίο να κάνει default |
1180 | 1180 | break;
|
1181 | 1181 | }
|
1182 | 1182 |
|
1183 | 1183 | // 7.A.1.2
|
1184 |
| - // A alternate approach that supports composability and reusability is to |
1185 |
| - // use an object to store "cases" and a function to delegate: |
| 1184 | + // Μια εναλλακτική προσέγγιση που υποστηρίζει τη δυνατότητα σύνθεσης και επαναχρησιμοποίησης είναι |
| 1185 | + // η χρήση ενός αντικειμένου για την αποθήκευση "cases" και ένα function για την ανάθεση: |
1186 | 1186 |
|
1187 | 1187 | var cases, delegator;
|
1188 | 1188 |
|
1189 |
| - // Example returns for illustration only. |
| 1189 | + // Παράδειγμα επιστρέφει μόνο για απεικόνιση. |
1190 | 1190 | cases = {
|
1191 | 1191 | alpha: function() {
|
1192 | 1192 | // statements
|
1193 |
| - // a return |
| 1193 | + // ένα return |
1194 | 1194 | return [ "Alpha", arguments.length ];
|
1195 | 1195 | },
|
1196 | 1196 | beta: function() {
|
1197 | 1197 | // statements
|
1198 |
| - // a return |
| 1198 | + // ένα return |
1199 | 1199 | return [ "Beta", arguments.length ];
|
1200 | 1200 | },
|
1201 | 1201 | _default: function() {
|
1202 | 1202 | // statements
|
1203 |
| - // a return |
| 1203 | + // ένα return |
1204 | 1204 | return [ "Default", arguments.length ];
|
1205 | 1205 | }
|
1206 | 1206 | };
|
1207 | 1207 |
|
1208 | 1208 | delegator = function() {
|
1209 | 1209 | var args, key, delegate;
|
1210 | 1210 |
|
1211 |
| - // Transform arguments list into an array |
| 1211 | + // Μετατρέψτε το arguments list σε ένα array |
1212 | 1212 | args = [].slice.call( arguments );
|
1213 | 1213 |
|
1214 |
| - // shift the case key from the arguments |
| 1214 | + // shift το case key από τα arguments |
1215 | 1215 | key = args.shift();
|
1216 | 1216 |
|
1217 |
| - // Assign the default case handler |
| 1217 | + // Αναθέστε το default case handler |
1218 | 1218 | delegate = cases._default;
|
1219 | 1219 |
|
1220 | 1220 | // Derive the method to delegate operation to
|
1221 | 1221 | if ( cases.hasOwnProperty( key ) ) {
|
1222 | 1222 | delegate = cases[ key ];
|
1223 | 1223 | }
|
1224 | 1224 |
|
1225 |
| - // The scope arg could be set to something specific, |
1226 |
| - // in this case, |null| will suffice |
| 1225 | + // Τα scope arg θα μπορούσαν να ανατεθούν σε κάτι συγκεκριμένο, |
| 1226 | + // σε αυτήν την περίπτωση το |null| θα ήταν αρκετό |
1227 | 1227 | return delegate.apply( null, args );
|
1228 | 1228 | };
|
1229 | 1229 |
|
1230 | 1230 | // 7.A.1.3
|
1231 |
| - // Put the API in 7.A.1.2 to work: |
| 1231 | + // Κάντε το API από το 7.A.1.2 να δουλέψει: |
1232 | 1232 |
|
1233 | 1233 | delegator( "alpha", 1, 2, 3, 4, 5 );
|
1234 | 1234 | // [ "Alpha", 5 ]
|
1235 | 1235 |
|
1236 |
| - // Of course, the `case` key argument could easily be based |
1237 |
| - // on some other arbitrary condition. |
| 1236 | + // Φυσικά, το `case` key argument θα μπορούσε έυκολα να είναι βασισμένο |
| 1237 | + // σε κάποιο άλλο τυχαίο condition. |
1238 | 1238 |
|
1239 | 1239 | var caseKey, someUserInput;
|
1240 | 1240 |
|
1241 |
| - // Possibly some kind of form input? |
| 1241 | + // Πιθανών κάποιου είδους form input; |
1242 | 1242 | someUserInput = 9;
|
1243 | 1243 |
|
1244 | 1244 | if ( someUserInput > 10 ) {
|
|
1247 | 1247 | caseKey = "beta";
|
1248 | 1248 | }
|
1249 | 1249 |
|
1250 |
| - // or... |
| 1250 | + // ή... |
1251 | 1251 |
|
1252 | 1252 | caseKey = someUserInput > 10 ? "alpha" : "beta";
|
1253 | 1253 |
|
1254 |
| - // And then... |
| 1254 | + // Ύστερα... |
1255 | 1255 |
|
1256 | 1256 | delegator( caseKey, someUserInput );
|
1257 | 1257 | // [ "Beta", 1 ]
|
1258 | 1258 |
|
1259 |
| - // And of course... |
| 1259 | + // Και φυσικά... |
1260 | 1260 |
|
1261 | 1261 | delegator();
|
1262 | 1262 | // [ "Default", 0 ]
|
1263 | 1263 |
|
1264 | 1264 |
|
1265 | 1265 | ```
|
1266 | 1266 |
|
1267 |
| - B. Early returns promote code readability with negligible performance difference |
| 1267 | + B. Οι πρώτες επιστροφές προάγουν την αναγνωσιμότητα του κώδικα με αμελητέα διαφορά απόδοσης |
1268 | 1268 |
|
1269 | 1269 | ```javascript
|
1270 | 1270 |
|
1271 | 1271 | // 7.B.1.1
|
1272 |
| - // Bad: |
| 1272 | + // Κακό: |
1273 | 1273 | function returnLate( foo ) {
|
1274 | 1274 | var ret;
|
1275 | 1275 |
|
|
1281 | 1281 | return ret;
|
1282 | 1282 | }
|
1283 | 1283 |
|
1284 |
| - // Good: |
| 1284 | + // Καλό: |
1285 | 1285 |
|
1286 | 1286 | function returnEarly( foo ) {
|
1287 | 1287 |
|
|
0 commit comments