Τρεις χρήσιμες τελείες - το υπόλοιπο και η εξάπλωση στο JavaScript
Lukasz Kolko
Η ECMAScript 2015 μας έφερε πολλά νέα, τα οποία οδήγησαν σε μεγάλο αριθμό βελτιώσεων. Σήμερα θα ρίξουμε μια πιο προσεκτική ματιά σε δύο χαρακτηριστικά που κάνουν τη ζωή μας πιο εύκολη. Γνωρίστε τα υπόλοιπα paremeters και τη σύνταξη εξάπλωσης.
Η σύνταξη rest μας επιτρέπει να αναπαραστήσουμε έναν απεριόριστο αριθμό ορίων ως πίνακα. Ρίξτε μια ματιά σε μια συνάρτηση που αθροίζει όλα τα ορίσματα που έχουν περάσει.
Ο τελεστής εξάπλωσης μας επιτρέπει να επεκτείνουμε τα επαναλήψιμα αντικείμενα σε μεμονωμένα στοιχεία. Αυτή η λειτουργικότητα είναι αντίθετη από αυτή που πετύχαμε με τις υπόλοιπες παραμέτρους. Μπορεί να εφαρμοστεί σε όλους τους επαναληπτικούς πίνακες, όπως πίνακες, αντικείμενα, σύνολα, χάρτες κ.λπ.
const sum = (x, y, z) => x + y + z,
const numbers = [1, 2, 3],
console.log(sum(...numbers)); // 6
Η σύνταξη spread πηγαίνει ουσιαστικά ένα επίπεδο βαθύτερα κατά την αντιγραφή ενός πίνακα. Ένα επίπεδο σημαίνει ότι αντιγράφεται το πρώτο επίπεδο αναφορών.
Σημειώστε ότι το αντίγραφο του αντικειμένου που δημιουργείται είναι ένα νέο αντικείμενο με όλες τις ιδιότητες του αρχικού αντικειμένου, αλλά χωρίς τις πληροφορίες πρωτοτύπου του.
Παρατηρήστε ότι η σύνταξη εξάπλωσης δημιουργεί "ρηχό" αντίγραφο του αντικειμένου, οπότε η ιδιότητα "πορτοφόλι" θα αντιγραφεί μόνο ως αναφορά στο αρχικό υπο-αντικείμενο. Για βαθιά κλωνοποίηση μπορείτε να χρησιμοποιήσετε την προσέγγιση JSON stringify/parse ή τη μέθοδο 'cloneDeep' που παρέχει η Lodash ανάλογα με την πολυπλοκότητα του αντικειμένου σας. Σε ορισμένες περιπτώσεις αυτή η μέθοδος μπορεί επίσης να είναι χρήσιμη:
let personCopy = { ...person, wallet = {...person.wallet}},
Μπορούμε να προσθέσουμε υπό όρους ιδιότητες σε ένα νέο αντικείμενο που δημιουργούμε κάνοντας χρήση του τελεστή εξάπλωσης μαζί με την αξιολόγηση βραχυκυκλώματος.