Η JavaScript κυριαρχεί στον ιστό – και η ECMAScript, ο πυρήνας της γλώσσας, ωριμάζει. Η νέα προδιαγραφή (ES6 ή JS2), που αναμένεται στα μέσα του έτους, φέρνει πολλές καινοτομίες που μπορούν ήδη να δοκιμαστούν. Ο Firefox προσφέρει αυτήν τη στιγμή την καλύτερη υποστήριξη , αλλά είναι επίσης δυνατές και οι πολυσυμπληρώσεις μέσω μεταφραστών όπως το Google Traceur . Ακολουθεί μια σύντομη επισκόπηση των νέων δυνατοτήτων της ES6.
Η νέα λέξη-κλειδί αφήνει να κάνει πολλά πράγματα καλύτερα από το var : το εύρος τιμών συμπεριφέρεται πλέον ακριβώς όπως σε άλλες γλώσσες (C/C++, Java), γι' αυτό και αν τα μπλοκ τώρα έχουν επίσης το δικό τους εύρος. Θα επισκευαστεί επίσης η ανύψωση, δηλαδή η ιεράρχηση των δηλώσεων μεταβλητών (όχι οι εκχωρήσεις τιμών) εντός του αντίστοιχου πεδίου:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
Ο αριθμός των άλλων καινοτομιών είναι μεγάλος: σταθερές (const), προεπιλεγμένες τιμές για συναρτήσεις (συνάρτηση pow(a,b=2) { return Math.pow(a,b); }), μια νέα σημείωση για συναρτήσεις (έστω pow = (a,b=2) => Math.pow(a,b);), μια ποικιλία νέων συναρτήσεων (repeat κατασκευή βρόχου για ... του.
Αξίζει επίσης να αναφερθούν οι νέοι τύποι δεδομένων Set, Map, Proxy και Symbol, η δυνατότητα εισαγωγής (τμημάτων άλλων) αρχείων JavaScript με εισαγωγή και μια νέα διαισθητική σύνταξη για κλάσεις και κληρονομικότητα. Αλλά συχνά υπάρχουν επίσης μικρά αλλά πολυαναμενόμενα πράγματα, όπως η δυνατότητα σπασίματος γραμμής σε κυριολεκτικά συμβολοσειρά (προσέξτε τα ειδικά εισαγωγικά):
`foo bar`
Η JavaScript είναι εδώ και καιρό κάτι πολύ περισσότερο από ένα απλό εργαλείο για μικρά κόλπα ιστοσελίδων – χρησιμοποιείται για τη δημιουργία ισχυρών, υψηλής απόδοσης εφαρμογών ιστού που είναι εξίσου καλές με τις αντίστοιχες εφαρμογές για υπολογιστές. Με την πληθώρα χρήσιμων νέων λειτουργιών και την υπάρχουσα υποστήριξη για το ES6, ο προγραμματισμός είναι δύο φορές πιο ευχάριστος.
Ποιος δεν ήθελε πάντα να ελέγχει την ισότητα δύο αριθμών με τη βοήθεια του νέου σταθερού αριθμού. EPSILON , του οποίου η τιμή φέρει τη διαφορά μεταξύ 1 και της επόμενης υψηλότερης τιμής κινητού σημείου;
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;