Το ECMAScript 2020, η τελευταία έκδοση της επίσημης προδιαγραφής που διέπει το JavaScript, εγκρίθηκε επίσημα από την ECMA International και η τεχνική επιτροπή ECMA που επιβλέπει τις προδιαγραφές, στις 16 Ιουνίου.
Το ECMAScript 2020 εισάγει πολλές δυνατότητες που κυμαίνονται από μια νέαεισαγωγή()
δυνατότητα φόρτωσης ενοτήτων σε νέοBigInt
τύπος για εργασία με αυθαίρετους ακέραιους αριθμούς.
Συγκεκριμένα χαρακτηριστικά που εισήγαγε το ECMAScript 2020 περιλαμβάνουν:
- Ένα "συναρπαστικό"
εισαγωγή()
σύνταξη φόρτωσης μονάδας για ασύγχρονη εισαγωγή μονάδων με δυναμικό προσδιοριστή. Η πρόταση προσθέτει έναεισαγωγή (προσδιοριστής)
συντακτική μορφή, ενεργώντας με πολλούς τρόπους όπως μια συνάρτηση. Επιστρέφει μια υπόσχεση για το αντικείμενο χώρου ονομάτων της λειτουργικής μονάδας που ζητήθηκε, που δημιουργήθηκε μετά την ανάκτηση, την παρουσίαση και την αξιολόγηση των εξαρτήσεων μιας μονάδας, μαζί με την ίδια τη λειτουργική μονάδα. οπροσδιοριστής
θα ερμηνευθεί με τον ίδιο τρόπο όπως σε έναεισαγωγή
δήλωση. Ενώπροσδιοριστής
είναι μια συμβολοσειρά, δεν είναι απαραίτητα μια κυριολεκτική συμβολοσειρά. έτσι, κώδικα όπωςεισαγωγή ("./language-packs / $ {navigator.language} .js")
θα δουλέψω. Αυτό δεν ήταν δυνατό με το συνηθισμένοεισαγωγή
δηλώσεις. Με το σχέδιο,εισαγωγή()
προτείνεται να λειτουργεί τόσο σε λειτουργικές μονάδες όσο και σενάρια, δίνοντας στον κώδικα σεναρίου ένα εύκολο ασύγχρονο σημείο εισόδου στον κόσμο της λειτουργικής μονάδας και επιτρέποντάς του να ξεκινήσει την εκτέλεση κώδικα μονάδας. BigInt,
ένα νέο πρωτόγονο αριθμό για εργασία με αυθαίρετους ακέραιους αριθμούς.BigInt
μπορεί να αντιπροσωπεύει αριθμούς μεγαλύτερους από δύο έως την 53η ισχύ, ο μεγαλύτερος αριθμός JavaScript μπορεί να αντιπροσωπεύει αξιόπιστα με τοΑριθμός
πρωτόγονος. ΕΝΑBigInt
δημιουργείται με προσθήκην
στο τέλος του ακέραιου αριθμού ή καλώντας τον κατασκευαστή.- ο
matchAll
μέθοδος για συμβολοσειρές, για να δημιουργήσετε έναν επαναληπτικό για όλα τα αντιστοιχισμένα αντικείμενα που δημιουργούνται από μια καθολική τυπική έκφραση. Το σκεπτικό πίσω από αυτήν την πρόταση είναι ότι εάν ένας προγραμματιστής έχει μια συμβολοσειρά και είτε μια κολλώδη είτε μια παγκόσμια κανονική έκφραση με πολλές ομάδες καταγραφής, ο προγραμματιστής μπορεί να θέλει να επαναλάβει όλες τις αντιστοιχίες, για τις οποίες υπάρχουν επί του παρόντος πολλές επιλογές, αλλά με περιορισμούς.Συμβολοσειρά # matchAll
αντιμετωπίζει ζητήματα παρέχοντας πρόσβαση σε όλες τις ομάδες καταγραφής και όχι μεταλλάσσοντας ορατά το εν λόγω αντικείμενο κανονικής έκφρασης. Promise.allΕγκατεστημένο
, ένας νέος συνδυασμός Promise που δεν βραχυκυκλώνει. Αυτό επιστρέφει μια υπόσχεση που εκπληρώνεται με μια σειρά στιγμιότυπων κατάστασης υπόσχεσης, αλλά μόνο μετά την εκκαθάριση των αρχικών υποσχέσεων, δηλαδή είτε εκπληρώθηκαν είτε απορρίφθηκαν.παγκόσμιαΑυτό
, παρέχοντας έναν καθολικό τρόπο πρόσβασης στο παγκόσμιοΑυτό
αξία.- Ένας αφοσιωμένος
εξαγωγή * ως ns από το "module"
σύνταξη για χρήση εντός ενοτήτων. - Αυξημένη τυποποίηση του
για μεσα
σειρά απαρίθμησης, προσδιορίζοντας εν μέρει τη σειρά απαρίθμησης σε JavaScript. import.meta,
ένα αντικείμενο με πλήθος κεντρικών υπολογιστών στις Ενότητες που μπορούν να περιέχουν πληροφορίες με βάση τα συμφραζόμενα. Αυτό χρησιμεύει ως μετα-ιδιοκτησία JavaScript, διατηρώντας συγκεκριμένα κεντρικά μεταδεδομένα σχετικά με την τρέχουσα λειτουργική μονάδα.- Nullish coalescing, ένας χειριστής επιλογής αξίας για καλύτερο χειρισμό περιπτώσεων που περιλαμβάνουν πρόσβαση σε ακίνητα. Είναι ένα χαρακτηριστικό σύνταξης που βελτιώνει την εργασία με τιμές "nullish" (
μηδενικό
ή απροσδιόριστο). - Προαιρετική αλυσίδα, μια πρόσβαση ιδιοκτησίας και ένας τελεστής επίκλησης λειτουργίας που θα βραχυκυκλώσει εάν η τιμή πρόσβασης / επίκλησης είναι μηδενική.
Η τελευταία ενημέρωση του ECMAScript, ECMAScript 2019, παρουσίασε δυνατότητες όπως prototype.flatMap
για ένθετες συστοιχίες.