Johdanto

ECMAScript 6, joka tunnetaan myös nimellä ECMAScript 2015, on uusin versio ECMAScript-standardia. ES6 on merkittävä päivitys kieleen, ja ensimmäinen päivitys kieleen sen jälkeen, kun ES5 standardoitiin vuonna 2009. Näiden ominaisuuksien toteuttaminen suurissa JavaScript-moottoreissa on käynnissä nyt.

Katso ES6-standardi ECMAScript 6-kielen täydellisestä erittelystä.,

ES6 sisältää seuraavat uudet ominaisuudet:

  • nuolet
  • luokat
  • parannettu esine literaaleja
  • mallin jouset
  • tuhoa
  • default + lepo + leviämisen
  • anna + const
  • iteraattorit + varten..,ja
  • generaattorit
  • unicode
  • moduulit
  • moduuli kuormaajat
  • kartta + set + weakmap + weakset
  • valtakirjat
  • symbolit
  • subclassable takkasydämet
  • lupaa
  • matematiikka + numero + merkkijono + joukko + esine APIs
  • binääri ja oktaali literaaleja
  • heijastavat api
  • tail puhelut

ECMAScript 6 Ominaisuudet

Nuolet

– Nuolet ovat funktio pika käyttäen => – syntaksilla. Ne muistuttavat syntaktisesti toisiinsa liittyvää ominaisuutta C#: ssä, Java 8: ssa ja CoffeeScript: ssä., Ne tukevat sekä lausumalohkoelimiä että ilmaisuelimiä, jotka palauttavat ilmaisun arvon. Funktioista poiketen nuolilla on sama lexical this kuin niiden ympäröivällä koodilla.

lisätietoja: MDN Nuoli Toiminnot

Luokat

ES6 luokat ovat yksinkertainen sokeri yli prototyyppi-pohjainen OO malli. Yhden kätevän ilmoittavan muodon ansiosta luokkakuvioita on helpompi käyttää, ja se edistää yhteentoimivuutta. Luokat tukevat prototyyppipohjaista perintöä, superpuheluita, instanssia ja staattisia menetelmiä ja rakentajia.,

lisätietoja: MDN Luokat

Parannettu Esine Literaaleja

Object literaaleja ovat laajennettu tuki asettaminen prototyypin rakentamisen, pika foo: foo tehtäviä, joissa määritellään menetelmiä, jolloin super puhelut, ja computing kiinteistön nimet ilmaisuja. Yhdessä nämä myös tuoda esineen literaaleja ja luokan ilmoitukset lähemmäksi toisiaan, ja anna objekti-pohjainen suunnittelu hyötyvät joitakin samoja varusteluun.,

lisätietoja: MDN Kielioppi ja tyypit: Object literaaleja

Mallin Jouset

Malli jouset tarjoavat syntaktinen sokeri rakentaa jouset. Tämä on samanlainen merkkijono interpolointi ominaisuuksia Perl, Python ja enemmän. Valinnaisesti, tag voidaan lisätä, jotta merkkijono rakenne voidaan räätälöidä, välttää injektio hyökkäyksiä tai rakentaa korkeamman tason tietorakenteita merkkijonon sisällöstä.

lisätietoja: MDN-Mallin Jouset,

Tuhoa

Tuhoa avulla sitovia käyttämällä kaavoja, tuki matching taulukot ja esineitä., Tuhoa on fail-pehmeä, samanlainen vakio-objektien haku foo tuottavat undefined arvot, kun ei löytynyt.

lisätietoja: MDN Tuhoa tehtävän

Default + Lepo + Levitä

Callee-arvioidaan parametrin oletusarvot. Käännä joukko peräkkäisiksi argumenteiksi funktiokutsussa. Sido perään parametrit joukkoon. Rest korvaa arguments tarpeen ja käsittelee yleisiä tapauksia suoremmin.,

function f(x, y=12) { // y is 12 if not passed (or passed as undefined) return x + y;}f(3) == 15
function f(x, ...y) { // y is an Array return x * y.length;}f(3, "hello", true) == 6
function f(x, y, z) { return x + y + z;}// Pass each elem of array as argumentf(...) == 6

More MDN info: Default parameters, Rest parameters, Spread Operator

Let + Const

Block-scoped binding constructs. let is the new var. const is single-assignment. Static restrictions prevent use before assignment.

function f() { { let x; { // okay, block scoped name const x = "sneaky"; // error, const x = "foo"; } // error, already declared in block let x = "inner"; }}

More MDN info: let statement, const statement

Iterators + For..,

Iteraattoriesineet mahdollistavat mukautetun iteroinnin kuten CLR IEnumerable tai Java Iterable. Yleistää for..in custom iteraattori-pohjainen iterointia, jossa for..of. Älä vaadi ymmärtämistä array, mahdollistaen laiska suunnittelu malleja kuten LINQ.

Iteraatio perustuu näihin ankka-kirjoitetut käyttöliittymät (käyttäen Kirjoituskoneella tyyppi syntaksi näyttely vain):

lisätietoja: MDN varten…

Generaattorit

Generaattorit yksinkertaistaa iteraattori-authoring käyttäen function* ja yield., Funktio, joka on ilmoitettu funktioksi* palauttaa generaattorin instanssin. Generaattorit ovat alatyyppejä iteraattorit, jotka sisältävät lisää next ja throw. Näiden avulla arvot virrata takaisin generaattori, joten yield on ilmaisun muoto, joka palauttaa arvon (tai heittää).

Huomautus: Voidaan käyttää myös mahdollistaa ’odottaa’-kuten async ohjelmointi, ks. myös ES7 await ehdotus.,

generaattori käyttöliittymä on (käyttäen Kirjoituskoneella tyyppi syntaksi näyttely vain):

interface Generator extends Iterator { next(value?: any): IteratorResult; throw(exception: any);}

lisätietoja: MDN Iteraation pöytäkirjat,

Unicode

Ei-breaking lisäyksiä täysi Unicode-tuki, mukaan lukien uusi Unicode kirjaimellisesti muodossa jouset ja uusi RegExp u mode käsitellä koodi pistettä, sekä uusi APIs käsitellä jouset 21bit koodi pistettä tasolla. Nämä lisäykset tukevat globaalien sovellusten rakentamista Javascriptissä.

lisätietoja: MDN RegExp.prototyyppi.,unicode

Moduulit

Kieli-tason tuki moduulit komponentin määritelmä. Kodifioi malleja suosittu JavaScript moduuli kuormaajat (AMD, CommonJS). Isäntäkohtaisen oletuskuormaajan määrittelemä ajonaikakäyttäytyminen. Implisiittisesti async malli-ei koodi suoritetaan, kunnes pyydetyt moduulit ovat saatavilla ja käsitellään.,v>

Joitakin muita ominaisuuksia ovat export default ja export *:

// lib/mathplusplus.jsexport * from "lib/math";export var e = 2.71828182846;export default function(x) { return Math.log(x);}
// app.jsimport ln, {pi, e} from "lib/mathplusplus";alert("2π = " + ln(e)*pi*2);

Lisää MDN info: tuonti julkilausuman, vienti-ilmoitus

Moduuli Kuormaajat

Moduulin kuormaajat tuki:

  • Dynaaminen lataaminen
  • Valtion eristyneisyys
  • Globaali nimiavaruus eristyneisyys
  • Kokoelma koukut
  • Sisäkkäisiä virtualisointi

oletuksena module loader voidaan määrittää, ja uusi kuormaajat voidaan laskennallisesti arvioida ja ladata koodi eristää tai rajoittaa yhteyksissä.,

Map + Set + WeakMap + WeakSet

yhteisten algoritmien tehokkaat Tietorakenteet. WeakMaps tarjoaa vuotamattomia objekti-avain ’ d Sivupöydät.

Lisää MDN info: Kartta, Asettaa, WeakMap, WeakSet

Valtakirja

Välityspalvelimet mahdollistavat luoda esineitä, joissa täyden valikoiman käyttäytymistä käytettävissä host esineitä. Voidaan käyttää sieppaukseen, objektivirtualisointiin, kirjaamiseen/profilointiin jne.

On olemassa ansoja saatavilla kaikki runtime-tasolla meta-toiminnot:

lisätietoja: MDN Proxy

Symbolit

Symbolit, jotta kulunvalvonta objektin tila., Symbolit mahdollistavat ominaisuudet on näppäilty joko string (kuten ES5) tai symbol. Symbolit ovat uusi alkukantainen tyyppi. Valinnainen description virheenkorjauksessa käytetty parametri – mutta ei ole osa identiteettiä. Symbolit ovat ainutlaatuisia (kuten gensym), mutta eivät yksityisiä, koska ne paljastuvat heijastusominaisuuksien kuten Object.getOwnPropertySymbolskautta.

lisätietoja: MDN-Symboli

Subclassable takkasydämet

ES6, takkasydämet, kuten Array, Date ja DOM Elements voidaan subclassed.,

Object rakentaminen toiminto nimeltä Ctor nyt käyttää kaksi-vaiheessa (sekä virtuaalisesti lähetetty):

  • Kutsu Ctor jakaa esine, asentaa mitään erityistä käyttäytymistä
  • Vedota rakentaja uusia esimerkiksi alustaa

tiedossa @@create symboli on saatavilla kautta Symbol.create. Sisäänrakennettu nyt paljastaa @@create eksplisiittisesti.,

Math + Numero + Merkkijono + Joukko + Objekti APIs

Monet uudet kirjasto lisäyksiä, mukaan lukien core Math kirjastot, Array muuntaminen auttajia, String auttajia, ja Objekti.määritä kopiointi.

More MDN info: Number, Math, Array.alkaen, Array.of, Array.prototyyppi.kuittaan, vastalause.määritä

Binääri ja Oktaali Literaaleja

Kaksi uutta numeerinen kirjaimellinen muodot ovat lisätty binary (b) ja oktaali (o).

0b111110111 === 503 // true0o767 === 503 // true

Lupaa

Lupaukset ovat kirjaston asynkroninen ohjelmointi., Lupaukset ovat arvomaailmaltaan ensiluokkainen edustus, joka saatetaan tulevaisuudessa saada käyttöön. Lupauksia käytetään monissa nykyisissä JavaScript-kirjastoissa.

lisätietoja: MDN Lupauksen

Heijastavat API

Koko reflection API altistaa runtime-tasolla meta-toimintoja esineitä. Tämä on käytännössä käänteinen Proxy API ja mahdollistaa puheluihin vastaa samaa meta-toiminnot kuten proxy ansoja. Erityisen hyödyllinen proxien toteuttamisessa.,

// No sample yet

lisätietoja: MDN Heijastavat

Tail Puhelut

Puhelut hännän asento ovat taatusti ei kasva pino unboundedly. Tekee rekursiiviset algoritmit turvallisiksi rajoittamattomien panosten edessä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *