Μπορείτε να αρχικοποιήσετε δύο μεταβλητές στην ίδια τιμή ταυτόχρονα, κάπως:
var foo, bar; foo = bar = 10;
Αλλά δεν υπάρχει παρόμοιος εύκολος μηχανισμός για την προσθήκη, ας πούμε, 5 και στα δύο foo
και bar
ταυτόχρονα Φυσικά, είναι αρκετά απλό να κάνετε:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Αλλά αυτό είναι δύο πράξεις.
Το κόλπο είναι:
foo += -bar + (bar += 5); // foo and bar are now 15
Πιθανότατα δεν θα το χρειαστείτε ποτέ, είναι απλώς ενδιαφέρον να γνωρίζετε ότι είναι δυνατόν.
Χάρη στον Matheus Avellar για την αποστολή αυτού του μικρού κόλπου μυαλού, ο οποίος εξηγεί επίσης:
Το
-bar
παίρνει αναλυμένο και γίνεται η αρνητική τιμήbar
, έτσι -10. Στη συνέχεια,a += 5
τρέχει και ορίζεταιbar
σε 15 (10 + 5). Τέλος, συνοψίζει και τις δύο τιμές (-10 + 15) και σας δίνει τη διαφορά μεταξύ παλαιούbar
και νέουbar
, δηλαδή 15.