ECMAScript 2022
Αριθμός έκδοσης του JavaScript
Παλιές εκδόσεις ECMAScript ονομάζονται με αριθμούς: ES5 και ES6.
Από το 2016, οι εκδόσεις ονομάζονται με το έτος: ES2016, 2018, 2020, 2022.
Νέες λειτουργίες της ES2022
- Array at()
- String at()
- RegExp /d
- Object.hasOwn()
- error.cause
- await import
- Δήλωση πεδίων κλάσης
- Προσωπικές μεθόδους και πεδία
Προειδοποίηση:
Αυτές οι λειτουργίες είναι σχετικά νέες.
Παλιότεροι περιηγητές μπορεί να χρειάζονται υποκατάσταση κώδικα (Polyfill).
JavaScript Array at()
Η ES2022 εισήγαγε τη μέθοδο πίνακα at()
:
Παράδειγμα 1
Αποκτήστε το τρίτο στοιχείο του πίνακα fruits:
const fruits = ["Banana", "Orange", "Apple", "Mango"]; let fruit = fruits.at(2);
Παράδειγμα 2
Αποκτήστε το τρίτο στοιχείο του πίνακα fruits:
const fruits = ["Banana", "Orange", "Apple", "Mango"]; let fruit = fruits[2];
at()
Η μέθοδος επιστρέφει το στοιχείο που αντιστοιχεί στο καθορισμένο index από τον πίνακα.
at()
Μέθοδος []
Τα αποτελέσματα είναι τα ίδια.
Από τον Μάρτιο του 2022, η υποστήριξη για όλους τους σύγχρονους προγραμματιστές περιηγητών είναι διαθέσιμη: at()
Μέθοδος:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 92 | Edge 92 | Firefox 90 | Safari 15.4 | Opera 78 |
Απρίλιος 2021 | Ιούλιος 2021 | Ιούλιος 2021 | Μάρτιος 2022 | Αύγουστος 2021 |
Σημείωση:
Πολλές γλώσσες επιτρέπουν τη χρήση αρνητικών索引 (όπως [-1]
) Πρόσβαση στο τελικό στοιχείο αντικειμένου/πίνακα/συμβολοσειράς.
Αυτό δεν είναι δυνατό στο JavaScript επειδή []
Χρησιμοποιείται για την πρόσβαση σε δομές δεδομένων όπως πίνακες και αντικείμενα. obj[-1] αναφέρεται στη τιμή του κλειδιού -1, όχι στη τελευταία ιδιότητα του αντικειμένου.
at()
Η μέθοδος εισήχθη στην ES2022 για να λύσει αυτό το πρόβλημα.
JavaScript String at()
Η ES2022 εισήγαγε τη μέθοδο συμβολοσειράς at()
:
Παράδειγμα 1
Αποκτήστε το τρίτο γράμμα της αλφαβητικής συμβολοσειράς name:
const name = "W3Schools"; let letter = name.at(2);
Παράδειγμα 2
Αποκτήστε το τρίτο γράμμα της αλφαβητικής συμβολοσειράς name:
const name = "W3Schools"; let letter = name[2];
at()
Μέθοδος που επιστρέφει τον χαρακτήρα στην καθορισμένη θέση από τη συμβολοσειρά.
at()
Μέθοδος []
Τα αποτελέσματα είναι τα ίδια.
Από τον Μάρτιο του 2022, η υποστήριξη για όλους τους σύγχρονους προγραμματιστές περιηγητών είναι διαθέσιμη: at()
Μέθοδος:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 92 | Edge 92 | Firefox 90 | Safari 15.4 | Opera 78 |
Απρίλιος 2021 | Ιούλιος 2021 | Ιούλιος 2021 | Μάρτιος 2022 | Αύγουστος 2021 |
Αναδιατύπωση d του RegExp
Το ES2022 προσθέτει /d
Αναδιατύπωση, που χρησιμοποιείται για να δείξει την αρχή και το τέλος της ταιριάσης.
πρότυπο
let text = "aaaabb"; let result = text.match(/(aa)(bb)/d);
Οι αναδιατύπωση του RegExp χρησιμοποιούνται για να καθορίσουν την ανυπομονησία κεφαλαίων και πεζών, καθώς και άλλες καθολικές αναζητήσεις:
Αναδιατύπωση | Περιγραφή | Δοκιμάστε το |
---|---|---|
g | Εκτέλεση καθολικού ταιριάσματος (ζητά όλες τις ταιριάσεις). | Δοκιμάστε το |
i | Εκτέλεση ταιριάσματος χωρίς διαφοροποίηση κεφαλαίων και πεζών. | Δοκιμάστε το |
d | Εκτέλεση ταιριάσματος υποσυμβολοσειράς (νέα δυνατότητα του ES2022). | Δοκιμάστε το |
m | Εκτέλεση πολλαπλών γραμμών ταιριάσματος. | Δοκιμάστε το |
Object.hasOwn()
Το ES2022 παρέχει μια ασφαλή μέθοδο για τον έλεγχο αν μια ιδιότητα είναι αυτοπάθος του αντικειμένου.
Object.hasOwn()
παρόμοια με Object.prototype.hasOwnProperty
αλλά υποστηρίζει όλους τους τύπους αντικειμένων.
πρότυπο
Object.hasOwn(myObject, age)
Αιτία Σφάλματος
Το ES2022 επιτρέπει τη σήμανση της根本原因 της σφάλματος μέσω της error.cause.
πρότυπο
try { connectData(); } throw new Error("Connecting failed.", { cause: err }); }
await import JavaScript
Τώρα οι μοντέρνες μονάδες JavaScript μπορούν να περιμένουν τα αναγκαία για εισαγωγή πόρων πριν από την εκτέλεση:
import {myData} from './myData.js'; const data = await myData();
Δηλώσεις πεδίων κλάσης JavaScript
class Hello { counter = 0; // πεδίο κλάσης } const myClass = new Hello(); let x = myClass.counter;
Από τον Απρίλιο του 2021, η υποστήριξη για τις δηλώσεις πεδίων κλάσης είναι διαθέσιμη σε όλους τους σύγχρονους προγραμματιστές περιηγητών:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 72 | Edge 79 | Firefox 69 | Safari 14.1 | Opera 60 |
Ιανουάριος 2019 | Ιανουάριος 2020 | Σεπτέμβριος 2019 | Απρίλιος 2021 | Ιανουάριος 2020 |
JavaScript ιδιωτικές μεθόδους και πεδία
class Hello { #counter = 0; // ιδιωτικό πεδίο #myMethod() {} // ιδιωτική μέθοδος } const myClass = new Hello(); let x = myClass.#counter; // λάθος myClass.#myMethod(); // λάθος
Από τον Ιούνιο του 2021, υποστηρίζονται οι ιδιωτικές μεθόδους και πεδία σε όλους τους σύγχρονους περιηγητές:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 74 | Edge 79 | Firefox 90 | Safari 14.1 | Opera 62 |
Απρίλιος 2019 | Ιανουάριος 2020 | Ιούνιος 2021 | Απρίλιος 2021 | Ιούνιος 2019 |