ES6: It’s a better monster!

Kirjailin taannoin Aurelia-nimisestä Javascript sovelluskehyksestä joka teki vaikutuksen. Yksi suurimpia osia miksi se kiinnosti oli helppo kyvykkyys alkaa heti käyttämään JavaScriptin/ECMAScriptin versiota 6. Se taas kiinnosti kahdesta syystä: Ensimmäinen on halu pitää nokka aina menosuuntaan: muuten putoaa helposti rattailta. Toinen on, että ES6 tarjoaa lukuisia sovelluskehittäjälle oikeasti laatua parantavia tekijöitä jahka se vain saadaan laajemmin käyttöön. Ja näin inspiroiduin kirjoittamaan vähän sen nykytilasta.

Nykyisellään selaimissa käytetään yleisimmin ECMAScript versiota 5 – tai 5.1 – ja versio 6 on ollut työnimellä Harmony työstettävänä jo jonkin aikaa. ES6 saatiin spesifikaationa viimein valmiiksi tämän vuoden toukokuussa.

Selaintuki on aina määräävä tekijä: Tätä artikkelia kirjoittaessa parhaiten ES6:sta tukee Firefox versio 40 – hurjalla 63% ominaisuustuella. Pienenä yllätyksenä kakkossijan jakavat Firefoxin versio 39 – ja Microsoftin tuleva Edge/Spartan selain joka tulee syrjäyttämään jo tammikuusta alkaen IE8-11 versiot joiden tuki lakkautetaan. Chrome ei ole ihan vielä näissä ajan tasalla – ominaisuuksia on tuettu n. 45% hujakoilla. Safarilta ja IE10/11 versioilta saati sitten vanhemmilta ei kannata näistä edes kysellä – tulee turhaan paha mieli. Ja mobiililaitteiden selaintuki on toki ihan oma lukunsa.

Onneksi on myös Babel/6to5 transpiler jota myös Aurelia käyttää – se osaa tarvittaessa kääntää ES6 syntaksia ES5 yhteensopivaksi jotta piirteet toimivat myös vanhoissa selaimissa – jep, aina pahamaiseiseen IE9:ään asti. Tämän avulla uusia piirteitä voi alkaa jo käyttelemään projekteissa joissa on tarpeen tukea laajaa selainkirjoa.

Mitä sieltä sitten löytyy? Miksi kannattaisi alkaa käyttämään ES6:sta? No siitä taidan tehdä ihan toisen artikkelin, sen verran mehukas aihe. Mutta tuossa itselle muistilistaa:

  • Vakiot (tai siis immutable muuttujat…)
  • Scope käyttö
  • Nuolifunktio (lambda syntaksi)
  • Parannukset this-avainsanaan
  • Tuki moduuleille, import/export
  • Parannukset luokkiin/objekteihin
  • Promise/Rinnakkaisuusmekanismit
  • Iteraattorit
  • Kokoelmaparannukset

Pysykäähän kuulolla…

Linkkejä:

http://www.ecma-international.org/ecma-262/6.0/ECMA-262.pdf

https://kangax.github.io/compat-table/es6/

Mainokset

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s