JavaScript, ES6, ES7, ES10 missä mennään?
On 26 tammikuun, 2022 by adminES6 ja ES7 – muistutus
En aio loukata teitä ja kirjoittaa vielä yhden ES6-esittelyn…Mutta itse asiassa aion tehdä sen. Pähkinänkuoressa ES6 (tai ES2015) on erä ominaisuuksia, jotka läpäisivät vaiheen 4 vuoden 2015 virstanpylvään mukaisesti. Toisin sanoen, jos sinulla on hyvä ymmärrys ES6:sta ja jonkin verran tietoa ES7:stä, sinulla on noin neljä vuotta aikaa kuroa umpeen… Ei paineita.
Katsotaanpa, mitä ES6:een virallisesti kuuluu. Muuten, kaikki nuo ominaisuudet ovat virallisesti tuettuja kaikissa selaimissa. Toisin sanoen, et tarvitse Babelia käyttääksesi mitään niistä (ellet tue IE 11:tä, josta puuttuu muutama).
ES6:ssa meillä on:
Kyky luoda ja periä luokkia.
class MyComponent extends React.Components {}
ES6-moduulit, joissa on import- ja export-ominaisuudet.
import * from 'React';export default MyComponent;
GENERAATTORIT
let fibonacci = {
*() {
let pre = 0, cur = 1
for (;;) {
=
yield cur
}
}
}
Merkitsitkö? Koristajat, objektien destrukturointi (kuten Reactin props: {…props}) ja niin edelleen eivät kuulu ES6:een!
Seuraa ES7:ää (ES2016) tässä. Se on aika pieni päivitys:
- Exponentointioperaattori
base ** exponent
- Array sisältää
array.includes(myItem) // true or false
Lähde: http://ecma-international.org/ecma-262/7.0/
Kuten olet varmaan huomannut, ei, Async/Await ei ole osa ES7:ää, vaan ES8:a!
ES8, ES9, ES10
Jokaista, joka on käynyt JavaScript-aiheisessa haastattelussa viimeisen kahden vuoden aikana, on kysytty vähintään 1671 kertaa, mikä ES6 on ja mitä ominaisuuksia se tuo tullessaan. Mutta onko kukaan huomannut, miten JS ei ilmeisesti yhtäkkiä pysähtynyt ES6:een eikä ES7:ään, silti kukaan ei kysele siitä? Tässä on tilaisuutesi tehdä asiat oikein!
Es8:ssa (ES2017), tässä ovat käytettävissä olevat ominaisuudet:
Ja tietysti Async / Await-funktiot:
Jos olet seurannut artikkelia, nyt sinun pitäisi jo tajuta se: Aivan kuten ES8 ja ES6, ES9 (tai ES2018) on melko suuri päivitys:
Loppujen lopuksi siirrytään ES10:een (tai ES2019:een)!
const array = ;array.sort(...)/*
*/
- Tehdään JavaScriptistä JSONin supersarja (katso yksityiskohdat täältä)
Mikä on ES5?
Jos ES6 on ES2015 ja ES7 on ES2016, arvaatko mikä on ES5:n vuosi?
…Hävisit! (Ellet sitten oikeasti tiedä, mutta koska en oikeasti kuule sinua, oletan, että hävisit). ES5 on ES2009!
Se ei lopu tähän, ennen ES5:tä viimeinen ES-päivitys oli vuonna 1999!
Niin kuin huomaatte, vuosina 97-99 päivityksiä oli melko tiheästi, sitten ES5:n piti olla ainoa päivitys 16 vuoteen!
Miten selitämme tämän? No, mielestäni tähän liittyy kaksi tekijää. Ensimmäinen on tekninen: JavaScript on surkea. Rehellisesti sanottuna se on. Silloin meillä oli muutama vaihtoehto JS:lle: Java Appletit, ActiveX ja jopa Flash.
Vuoteen 2011-luvun tienoille asti (jolloin Chrome alkoi olla luoti) nuo teknologiat olivat paitsi kertaluokkaa JS:ää nopeampia, myös niissä oli jo suurin osa niistä ominaisuuksista, joiden saamisesta JS:ään kamppailemme nykyäänkin. (Javassa on kaikki kielen ominaisuudet kuten class ja decorators, tuki monisäikeistystä, OpenGL, Sockets, jne…). Kun Chrome ja Google astuivat näyttämölle ja ilmoittivat vuonna 2013, että Java oli loppu (ja sitten Flash seurasi), alkoi ristiretki JS:n saamiseksi kiinni kilpailijoihinsa. Kaksi vuotta myöhemmin saimme ES6:n ovellemme.
Toinen tekijä on taloudellinen: 2000 on Dot-com-kuplan puhkeamisen vuosi. Nuorimmat voivat kuvitella, mitä bitcoin on ollut muutama vuosi sitten, Internet-startupit olivat samanlaisia 90-luvun lopulla. Startupit lisäsivät nimiensä loppuun .com:n saadakseen valtavia riskisijoituksia (aivan kuten meillä on nykyään lupaus mySuperStartup.ai), kunnes arvo yhtäkkiä putosi 20-luvulla. Tämä on hyvin alkeellinen selitys, ja pyydän sinua katsomaan wikipedia-artikkelia paremman selityksen löytämiseksi.
Pointtina on se, että Internet lakkasi saamasta sitä vetovoimaa, jota se tarvitsi saadakseen JS:n ja webiin liittyvien teknologioiden painopisteen. Myöhemmin Amazonin, Facebookin ja Googlen nousun myötä web sai uuden syyn olla ja uuden syyn kukoistaa. Siksi oli loogista, että nostimme JS:n takaisin esiin! Google julkistettiin vuonna 2004, Chrome julkaistiin vuonna 2008, ja siitä tuli suosituin selain vuonna 2014: vuosi ennen ES6:n saapumista.
Mitä puuttuu? (Hylätyt ehdotukset)
Object.observe
Tämä on luultavasti kaikista suurin hylkäys. Se mahdollisti alunperin JS:n havainnoida mitä tahansa arvoja koodissa :
var obj = {
foo: 0,
bar: 1
};
Object.observe(obj, function(changes) {
console.log(changes);
});obj.baz = 2;
//
Tämä oli hieno ominaisuus, ja ilmeisesti voit tehdä sen omasta koodistasi (tai polyfillillä), mutta sen toteuttaminen selaimessa oli lupaus nopeammasta reaktiivisesta koodista (esim. Angular käyttää paljon havainnointia). Se peruttiin, koska he eivät pystyneet saamaan aikaan toteutusta, jonka suorituskyky olisi pysynyt vakiona. Lisätietoja täällä.
Cancelable Promises
Self-explanatory, ominaisuus, joka ei varmasti ole ainoa puuttuva. Ideana on antaa kehittäjille mahdollisuus peruuttaa minkä tahansa lupauksen suoritus milloin tahansa.
Käyttökohteet vaihtelevat, esimerkiksi asiakaspuolen aikakatkaisu asynkille toiminnalle, tai esimerkiksi jos sinulla on välilehtipohjainen navigointijärjestelmä, ja käyttäjä klikkaa välilehteä ennen kuin ehdit ladata nykyisen välilehden sisällön.
blöcks
Mainitsen tämän vain siksi, että pidän nimestä, mutta myös siksi, että se on mukava ominaisuus, joka on verrattavissa Go Routinesiin tai C# Tasksiin.
const blöck = await {|
// This code is Async, but most importantly, executed in another thread
|};
Muuta
On tehty muutama muukin mielenkiintoinen ehdotus, kuten kutsuttavat konstruktorit. Suurin osa niistä on joko peruttu, koska alkuperäinen kirjoittaja teki niin, tai hylätty, koska ne ovat ristiriidassa tai päällekkäisiä olemassa olevien/suunniteltujen ominaisuuksien kanssa.
Vastaa