Programmering

ECMAScript 2020-spesifikasjon for JavaScript-godkjent

ECMAScript 2020, den siste versjonen av den offisielle spesifikasjonen som ligger til grunn for JavaScript, ble formelt godkjent av ECMA International, og ECMAs tekniske komité som hadde tilsyn med spesifikasjonen, 16. juni.

ECMAScript 2020 introduserer flere funksjoner, alt fra en nyimport() anlegg for å laste moduler til en nyBigInt type for å jobbe med vilkårlige presisjons heltall.

Spesifikke funksjoner introdusert av ECMAScript 2020 inkluderer:

  • En “funksjonslignende” import() modul lasting syntaks for asynkront importere moduler med en dynamisk spesifikator. Forslaget legger til en import (spesifiser) syntaktisk form, som fungerer på mange måter som en funksjon. Den returnerer et løfte om modulnavneområdet til den forespurte modulen, opprettet etter å ha hentet, instantiert og evaluert avhengighetene til en modul, sammen med selve modulen. Despesifikator vil bli tolket på samme måte som i en import erklæring. Samtidig som spesifikator er en streng, den er ikke nødvendigvis en streng bokstavelig; dermed kode som import (`./language-packs / $ {navigator.language} .js`) skal jobbe. Dette var ikke mulig med det vanlige import erklæringer. Med planen, import() er foreslått å fungere i både moduler og skript, noe som gir skriptkode et enkelt asynkront inngangspunkt til modulverdenen og lar den begynne å kjøre modulkode.
  • BigInt, et nytt tall som er primitivt for arbeid med vilkårlige presisjons heltall. BigInt kan representere tall større enn to til 53. kraft, det største antallet JavaScript kan representere pålitelig med Nummer primitiv. EN BigInt er opprettet ved å legge til n til slutten av heltallet eller ved å ringe konstruktøren.
  • De matchAll metode for strenger, for å produsere en iterator for alle matchede objekter generert av et globalt regulært uttrykk. Begrunnelsen bak dette forslaget er at hvis en utvikler har en streng og enten et klissete eller et globalt regulært uttrykk med flere fangstgrupper, vil utvikleren kanskje gjenta alle kampene, som det for øyeblikket er flere alternativer for, men med begrensninger. String # matchAll adresserer problemer ved å gi tilgang til alle fangende grupper og ikke synlig mutere det aktuelle uttrykksobjektet.
  • Promise.allSettled, en ny Promise-kombinator som ikke kortslutter. Dette returnerer et løfte som er oppfylt med en rekke løftetilstandsbilder, men først etter at de opprinnelige løftene har avgjort, dvs. har blitt oppfylt eller avvist.
  • globalDette, som gir en universell måte å få tilgang til det globale på dette verdi.
  • En dedikert eksportere * som ns fra ‘modul’ syntaks å bruke i moduler.
  • Økt standardisering av for i enumeration order, delvis spesifiserer enumeration order i JavaScript.
  • import.meta, et vertsfylt objekt i moduler som kan inneholde kontekstuell informasjon. Dette fungerer som en JavaScript-metaproperty, som inneholder vertsspesifikke metadata om den gjeldende modulen.
  • Nullish coalescing, en verdivalgsoperatør for bedre håndtering av saker som involverer tilgang til eiendom. Det er en syntaksfunksjon for å forbedre arbeidet med "nullish" -verdier (null eller udefinert).
  • Valgfri kjetting, en operatør for tilgang til eiendom og funksjon som vil kortslutte hvis verdien for tilgang / påkalling er null.

Den siste oppdateringen til ECMAScript, ECMAScript 2019, inneholdt muligheter som prototype.flatMap for nestede matriser.