JavaScript domineert het web en ECMAScript, de kern van de taal wordt volwassen. De nieuwe specificatie (ES6 of JS2), die medio dit jaar wordt verwacht, brengt tal van innovaties met zich mee die nu al kunnen worden uitgeprobeerd. Firefox heeft momenteel de beste ondersteuning , maar polyfills via zogenaamde transpilers zoals Google Traceur behoren ook tot de mogelijkheden. Het volgende is een kort overzicht van de nieuwe functies van ES6.
Het nieuwe trefwoord let doet het een stuk beter dan var : Scoping gedraagt zich nu precies zoals in andere talen (C / C ++, Java), daarom hebben if-blocks nu ook hun eigen scope. Ook het hijsen, d.w.z. het naar voren brengen van variabele declaraties (geen waardetoekenningen) binnen de respectievelijke scope wordt hersteld:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
Het aantal andere innovaties is lang: constanten (const), standaardwaarden voor functies (functie pow (a, b = 2) {return Math.pow (a, b);}), een nieuwe notatie voor functies (laat pow = (a, b = 2) => Math.pow (a, b);), een veelvoud aan nieuwe functies (repeat (), contains (), startsWith (), find (), findIndex ()), de nieuwe lusconstructie voor ... van.
De nieuwe gegevenstypen set, map, proxy en symbool, het importeren van (delen van andere) JavaScript-bestanden met import en een nieuwe intuïtieve syntaxis voor klassen en overerving moeten ook worden genoemd. Vaak zijn er ook kleine maar langverwachte zaken zoals de mogelijkheid van regeleinden in letterlijke tekenreeksen (let op de speciale aanhalingstekens):
`foo bar`
JavaScript is lange tijd veel meer geweest dan een hulpmiddel voor kleine websitetrucs - het creëert krachtige, krachtige webtoepassingen die op geen enkele manier onderdoen voor hun desktop-tegenhangers. Met het grote aantal handige innovaties en de ondersteuning die al beschikbaar is vanuit ES6, is programmeren twee keer zo leuk.
Wie heeft niet altijd de gelijkheid van twee getallen willen controleren met behulp van de nieuwe constante Number.EPSILON , waarvan de waarde het verschil tussen 1 en de volgende hogere drijvende- kommawaarde draagt?
let cmp = (a,b) => Math.abs(a-b)