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), ֆունկցիաների լռելյայն արժեքներ (function pow(a,b=2) { return Math.pow(a,b); }), ֆունկցիաների նոր նշում (թող pow = (a,b=2) => Math.pow(a,b);), մի շարք նոր ֆունկցիաներ (repeat find) (h), (կրկնել նոր ֆունկցիաներ),(h) հանգույցի կառուցում ...-ի համար:
Հարկ է նշել նաև Set, Map, Proxy և Symbol տվյալների նոր տեսակները, JavaScript-ի (այլ մասերի) ֆայլերի ներմուծման հնարավորությունը և դասերի և ժառանգության նոր ինտուիտիվ շարահյուսությունը: Բայց հաճախ կան նաև փոքր, բայց երկար սպասված բաներ, ինչպիսիք են տողերի տառերով տողերի ընդմիջման հնարավորությունը (նկատի ունեցեք հատուկ չակերտները)::
`foo bar`
JavaScript-ը վաղուց ի վեր ավելին է, քան պարզապես կայքի մանր հնարքների գործիք. այն օգտագործվում է հզոր, բարձր արդյունավետությամբ վեբ հավելվածներ ստեղծելու համար, որոնք նույնքան լավն են, որքան իրենց աշխատասեղանի համար նախատեսված համարժեքները: Օգտակար նոր գործառույթների առատության և ES6-ի առկա աջակցության շնորհիվ ծրագրավորումը կրկնակի հաճելի է:
Ո՞վ միշտ չէ, որ ցանկացել է ստուգել երկու թվերի հավասարությունը նոր հաստատուն թվի միջոցով: EPSILON , որի արժեքը կրում է տարբերությունը 1-ի և հաջորդ բարձր լողացող կետի արժեքի միջև:
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;