⊗jsPmROInr 294 of 505 menu

Ο τελεστής rest στην JavaScript

Αυτό το μάθημα θα ξεκινήσουμε με μια κάποια διευκρίνιση. Σε όλα τα προηγούμενα μαθήματα αυτής της ενότητας δεν σας είπα όλη την αλήθεια για τον τελεστή ...

Στην πραγματικότητα αυτός ο τελεστής ανάλογα με τη θέση του στον κώδικα μπορεί να ονομάζεται είτε τελεστής spread, είτε τελεστής rest.

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

Τώρα θα δούμε για τι. Ας υποθέσουμε ότι έχουμε μια συνάρτηση που δέχεται δύο παραμέτρους:

function func(a, b) { console.log(a); console.log(b); }

Θα πρέπει ήδη να γνωρίζετε ότι εάν μεταβιβάσετε επιπλέον παραμέτρους στη συνάρτηση, αυτό δεν θα προκαλέσει σφάλμα:

func(1, 2, 3, 4, 5);

Ο τελεστής rest επιτρέπει τη λήψη όλων των επιπλέον παραμέτρων σε μορφή πίνακα. Για αυτό στη συνάρτηση προστίθεται μια ακόμη παράμετρος (απαραίτητα στην τελευταία θέση), πριν από την οποία γράφονται 3 τελείες:

function func(a, b, ...rest) { }

Αυτές οι τρεις τελείες είναι ο τελεστής rest, και το όνομα της μεταβλητής μπορεί να είναι οποιοδήποτε, αλλά συνήθως είναι αποδεκτό να ονομάζεται επίσης rest.

Ας καλέσουμε τη συνάρτησή μας με περίσσεια παραμέτρων και ας δούμε τι μπαίνει στις παραμέτρους a και b, και τι - στο υπόλοιπο rest:

func(1, 2, 3, 4, 5); function func(a, b, ...rest) { console.log(a); // θα εμφανίσει 1 console.log(b); // θα εμφανίσει 2 console.log(rest); // θα εμφανίσει [3, 4, 5] }

Εάν δεν υπάρχουν επιπλέον παράμετροι, τότε στη μεταβλητή rest θα εισαχθεί ένας κενός πίνακας:

func(1, 2); function func(a, b, ...rest) { console.log(a); // θα εμφανίσει 1 console.log(b); // θα εμφανίσει 2 console.log(rest); // θα εμφανίσει [] }

Η συνάρτηση μπορεί γενικά να μην έχει παραμέτρους, αλλά να μπορεί κανείς να προσθέσει rest. Σε αυτήν την περίπτωση η συνάρτηση μπορεί να κληθεί με οποιονδήποτε αριθμό παραμέτρων και όλες θα μπαίνουν στον πίνακα rest:

function func(...rest) { console.log(rest); }
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη