JavaScript dominon uebin - dhe ECMAScript, thelbi i gjuhës, po piqet. Specifikimi i ri (ES6 ose JS2), që pritet në mesin e vitit, sjell risi të shumta që mund të testohen tashmë. Firefox aktualisht ofron mbështetjen më të mirë , por edhe polifill-et nëpërmjet transpilerëve si Google Traceur janë të mundshme. Më poshtë është një përmbledhje e shkurtër e veçorive të reja të ES6.
Fjala kyçe e re le bën shumë më mirë se var : Scoping tani sillet saktësisht si në gjuhët e tjera (C / C ++, Java), prandaj bllok-blloqet tani kanë edhe shtrirjen e tyre. Riparohet gjithashtu ngritja, d.m.th. sjellja përpara e deklaratave të ndryshueshme (jo caktimet e vlerës) brenda fushës përkatëse:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
Lista e inovacioneve të tjera është e gjatë: konstante (const), vlera parazgjedhje për funksionet (function pow(a,b=2) { return Math.pow(a,b); }), një simbol i ri për funksionet (let pow = (a,b=2) => Math.pow(a,b);), një mori funksionesh të reja (repeat(), contains(), startsWith(), find(), findIndex()), konstruksioni i ri i ciklit për ... of.
Gjithashtu, vlen të përmenden llojet e reja të të dhënave Set, Map, Proxy dhe Symbol, aftësia për të importuar (pjesë të të tjerëve) skedarë JavaScript duke përdorur `import` dhe një sintaksë e re dhe intuitive për klasat dhe trashëgiminë. Megjithatë, shpesh janë veçoritë e vogla por të shumëpritura, si aftësia për të përfshirë ndërprerje rreshtash në literal-et e vargjeve (vini re shenjat e veçanta të thonjëzave).:
`foo bar`
JavaScript ka qenë prej kohësh shumë më tepër sesa thjesht një mjet për truke të vogla me faqet e internetit – përdoret për të krijuar aplikacione të fuqishme dhe me performancë të lartë në internet, të cilat janë po aq të mira sa homologët e tyre për desktop. Me bollëkun e veçorive të reja të dobishme dhe mbështetjen ekzistuese për ES6, programimi është dyfish më i këndshëm.
Kush nuk ka dashur gjithmonë të kontrollojë barazinë e dy numrave me ndihmën e numrit të ri konstant. EPSILON , vlera e të cilit është ndryshimi midis 1 dhe vlerës tjetër të pikës lundruese tjetër?
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;