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