Programovanie

Návrh ECMA by priniesol záznamy a n-tice do JavaScriptu

JavaScript by podľa návrhu pred ECMA International, orgánom pre štandardy, ktorý dohliada na populárny programovací jazyk pre vývoj webových aplikácií, získal typy záznamov a n-tic.

Záznamy a n-tice by zaviedli do JavaScriptu dve hlboko nemenné dátové štruktúry: Záznam, objektová štruktúra a Násobný, štruktúra podobná poli. Návrh plánu s technickým výborom ECMA 39, ktorý riadi ECMAScript, štandardný základný JavaScript.

V návrhu sa uvádza, že záznamy a n-tice môžu obsahovať iba primitívne údaje a iné záznamy a n-tice. Môžu sa považovať za „zložené primitívy“. A tým, že sú dôsledne založené na primitívoch, sú hlboko nemenní. Rovnako ako objekty a polia, aj záznamy a n-tice podporujú pohodlné idiómy pre konštrukciu, použitie a manipuláciu, uvádza sa v návrhu. Porovnávajú sa skôr podľa obsahu než podľa identity.

Stroje JavaScriptu môžu vykonávať určité optimalizácie konštrukcie, manipulácie a porovnania záznamov a n-tic, analogicky s implementáciou reťazcov. Záznamy a n-tice sú zamýšľané tak, aby boli použiteľné a zrozumiteľné s externými systémovými nadstavbami typu, ako sú TypeScript alebo Flow.

V súčasnosti knižnice užívateľských krajín, ako napríklad immutable.js, implementujú podobné koncepty. Pokusil sa o predchádzajúci návrh nemenných dátových štruktúr ECMA, ale upustilo sa od neho kvôli zložitosti a nedostatku prípadov dostatočného použitia, uvádza sa v návrhu. Nový návrh zavádza významné zmeny, ktoré ponúkajú výhody použiteľnosti oproti knižniciam používateľom, ako sú napríklad tieto:

  • Záznamy a n-tice sú ľahko prehľadateľné v debuggeri.
  • Na napísanie všeobecnej knižnice, ktorá spotrebúva nemenné a objekty JS, nie je potrebné žiadne ďalšie vetvenie.
  • Vyhýbame sa prípadom použitia, keď môžu vývojári nákladne prevádzať medzi bežnými objektmi JS a nemennými štruktúrami.

Záznamy a n-tice dobre spolupracujú s objektmi a poľami. Dajú sa čítať rovnakým spôsobom ako objekty a polia. Kľúčový rozdiel sa sústreďuje na hlbokú nemennosť a porovnanie podľa hodnoty a nie podľa identity. Navrhovaná syntax tiež výrazne zlepšuje ergonómiu používania Záznam a Násobný v kóde.

Najnovšia verzia špecifikácie ECMAScript, verzia 2020, bola prijatá v júni. Predstavoval možnosti v oblastiach, ako je načítanie modulu a nové BigInt typu.

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