Programiranje

Predlog ECMA bi zapise in zbirke prinesel v JavaScript

JavaScript bi v predlogu pred ECMA International, organom za standardizacijo, ki nadzira priljubljeni programski jezik za spletni razvoj, pridobil vrste zapisov in skupin vrednosti.

Zapisi in nabori bi v JavaScript uvedli dve globoko nespremenljivi podatkovni strukturi: Snemaj, objektni strukturi in Tuple, matrični strukturi. Osnutek načrta s tehničnim odborom ECMA 39, ki ureja ECMAScript, standard, na katerem temelji JavaScript.

Zapisi in korice, navaja predlog, lahko vsebujejo samo primitive in druge zapise in korice. Lahko jih razumemo kot "sestavljene primitivce". Ker temeljito temeljijo na primitivih, so globoko nespremenljivi. Tako kot predmeti in nizi tudi zapisi in nabori podpirajo udobne idiome za gradnjo, uporabo in manipulacijo, navaja predlog. Primerjajo se po vsebini in ne po identiteti.

Motorji JavaScript lahko izvedejo določene optimizacije pri gradnji, manipulaciji in primerjanju zapisov in nabora, analogno načinu izvajanja nizov. Zapisi in nabori naj bi bili uporabni in razumljivi z zunanjimi nabori sistemskih tipov, kot sta TypeScript ali Flow.

Trenutno knjižnice uporabniške države, kot je imutable.js, izvajajo podobne koncepte. Predhodni predlog ECMA za nespremenljive podatkovne strukture je bil poskusen, vendar je bil zaradi zapletenosti in pomanjkanja primerov uporabe opuščen, navaja predlog. Novi predlog uvaja pomembne spremembe in ponuja uporabne prednosti pred knjižnicami uporabniške države, kot so naslednje:

  • Zapisi in nabori so v razhroščevalniku enostavno pregledljivi.
  • Za pisanje generične knjižnice, ki porablja nespremenljive in JS predmete, ni potrebno dodatno razvejanje.
  • Izogibajo se primerom uporabe, kjer lahko razvijalci drago pretvorijo med običajne predmete JS in nespremenljive strukture.

Zapisi in nabori dobro delujejo s predmeti in nizi. Lahko jih beremo enako kot predmete in nize. Ključna razlika se osredotoča na globoko nespremenljivost in primerjavo po vrednosti in ne po identiteti. Predlagana sintaksa tudi bistveno izboljša ergonomijo uporabe Snemaj in Tuple v kodi.

Najnovejša različica specifikacije ECMAScript, različica 2020, je bila sprejeta junija. Predstavljal je zmogljivosti na področjih, kot so nalaganje modulov in novo BigInt tip.

$config[zx-auto] not found$config[zx-overlay] not found