JavaScript dominerar webben – och ECMAScript, kärnan i språket, mognar. Den nya specifikationen (ES6 eller JS2), som förväntas i mitten av året, medför ett flertal innovationer som redan kan testas. Firefox erbjuder för närvarande det bästa stödet , men polyfills via transpilers som Google Traceur är också möjliga. En kort översikt över de nya funktionerna i ES6 följer.
Det nya sökordet let gör många saker bättre än var : scoping beter sig nu precis som på andra språk (C/C++, Java), vilket är anledningen till att om block nu också har sin egen scope. Även hissning, det vill säga prioritering av variabeldeklarationer (ej värdetilldelning) inom respektive omfattning, kommer att repareras:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
Antalet andra innovationer är stort: konstanter (const), standardvärden för funktioner (funktion pow(a,b=2) { return Math.pow(a,b); }), en ny notation för funktioner (låt pow = (a,b=2) => Math.pow(a,b);), en mängd nya funktioner (repeat(), innehåller(), konstruktion(), konstruktion(x), hitta den nya, konstruktionen för ... av.
Värt att nämna är också de nya datatyperna Set, Map, Proxy och Symbol, möjligheten att importera (delar av andra) JavaScript-filer med import och en ny intuitiv syntax för klasser och arv. Men ofta finns det också små men efterlängtade saker som möjligheten till radbrytningar i strängbokstavar (observera de speciella citattecken):
`foo bar`
JavaScript har länge varit mycket mer än ett verktyg för små webbplatstrick – det skapar kraftfulla, högpresterande webbapplikationer som inte på något sätt är sämre än sina skrivbordsmotsvarigheter. Med det stora antalet användbara innovationer och det befintliga stödet för ES6 är programmering dubbelt så roligt.
Vem har inte alltid velat kontrollera likheten mellan två siffror med hjälp av det nya konstanta talet. EPSILON , vars värde är skillnaden mellan 1 och nästa högre flytpunkt?
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;