Παρουσιάζοντας τις νέες δυνατότητες που προσθέτει το ECMAScript 2016 (ES7) στο JavaScript

Από τότε που κυκλοφόρησε το ECMAScript 2015 (επίσης γνωστό ως ES6), εισήγαγε ένα τεράστιο σύνολο νέων λειτουργιών. Περιλαμβάνουν λειτουργίες βέλους, σύνολα, χάρτες, τάξεις και καταστροφές και πολλά άλλα. Με πολλούς τρόπους, το ES2015 μοιάζει σχεδόν με την εκμάθηση μιας νέας έκδοσης JavaScript.

Η τεχνική επιτροπή Ecma 39 διέπει τις προδιαγραφές ECMA. Αποφάσισαν να κυκλοφορήσουν μια νέα έκδοση του ECMAScript κάθε χρόνο ξεκινώντας από το 2015. Μια ετήσια ενημέρωση δεν σημαίνει πλέον μεγάλες εκδόσεις όπως το ES6.

Το ECMAScript 2016 παρουσίασε μόνο δύο νέες δυνατότητες:

  • Array.prototype. include ()
  • Χειριστής εκτόνωσης

Array.prototype. include ()

Array.prototype.includes()ελέγχει τον πίνακα για το valueπέρασμα ως argument. Επιστρέφει trueεάν ο πίνακας περιέχει value, διαφορετικά, επιστρέφει false.

Προηγουμένως, έπρεπε να χρησιμοποιήσουμε Array.prototype.indexOf()για να ελέγξουμε εάν ο δεδομένος πίνακας περιέχει ένα στοιχείο ή όχι.

let numbers = [1, 2, 3, 4];
if(numbers.indexOf(2) !== -1) { console.log('Array contains value');}

Με το ECMA2016, μπορούμε να γράψουμε:

if(numbers.includes(2)) { console.log('Array contains value');}

Array.prototype.includes()χειρίζεται NaNκαλύτερα από Array.prototype.indexOf(). Εάν ο πίνακας περιέχει NaN, τότε indexOf()δεν επιστρέφει ένα σωστό ευρετήριο κατά την αναζήτηση NaN.

Array.prototype.includes()επιστρέφει τη σωστή τιμή κατά την αναζήτηση NaN.

NaNείναι μια ιδιότητα του καθολικού αντικειμένου JavaScript και αντιπροσωπεύει μια τιμή που δεν είναι αριθμός. Υπάρχουν γνωστές ιδιορρυθμίες κατά τη σύγκριση NaNμε μια άλλη τιμή. Αυτά αντιμετωπίζονται στο Array.prototype.includes(), αλλά όχι στο Array.protoype.indexOf.

let numbers = [1, 2, 3, 4, NaN];
console.log(numbers.indexOf(NaN)); //Prints -1console.log(numbers.includes(NaN)); //Prints true

Χειριστής εκτόνωσης

Η JavaScript υποστηρίζει ήδη πολλούς αριθμητικούς τελεστές όπως +, -, *και πολλά άλλα.

ECMAScript 2016 εισήγαγε τον χειριστή ύψωση σε δύναμη, **.

Έχει τον ίδιο σκοπό όπως Math.pow(). Επιστρέφει το πρώτο επιχείρημα που τέθηκε στη δύναμη του δεύτερου επιχειρήματος.

let base = 3;let exponent = 4;let result = base**exponent;
console.log(result); //81

συμπέρασμα

Τα νέα χαρακτηριστικά που εισήγαγε το ECMA2016 παρέχουν βολικές εναλλακτικές λύσεις στις υπάρχουσες λειτουργίες.

Κοιτώντας μπροστά, η ECMA2017 ολοκληρώθηκε τον Ιούνιο του τρέχοντος έτους. Τα νέα χαρακτηριστικά περιλαμβάνουν async/await, SharedArrayBufferκαι μερικές χρήσιμες μεθόδους για να Object.prototype.