Skip to content

Archives

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Categories

  • Ei kategorioita
Trend RepositoryArticles and guides
Articles

JavaScript, ES6, ES7, ES10 missä mennään?

On 26 tammikuun, 2022 by admin
  • ES6 ja ES7 – muistutus
  • ES8, ES9, ES10
  • Mikä on ES5?
  • Mitä puuttuu? (Hylätyt ehdotukset)
  • Object.observe
  • Cancelable Promises
  • blöcks
  • Muuta

ES6 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:

Molemmat selaimet tukevat näitä ominaisuuksia jo nyt!

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 Peruuta vastaus

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

Arkistot

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Meta

  • Kirjaudu sisään
  • Sisältösyöte
  • Kommenttisyöte
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress