Programmering

ECMAScript 2020-specifikation til JavaScript-godkendt

ECMAScript 2020, den sidste version af den officielle specifikation, der ligger til grund for JavaScript, blev formelt godkendt af ECMA International og ECMA's tekniske udvalg, der overvåger specifikationen, den 16. juni.

ECMAScript 2020 introducerer flere funktioner lige fra en nyimportere() mulighed for at indlæse moduler til en nyBigInt type til at arbejde med vilkårlige præcisions heltal.

Specifikke funktioner introduceret af ECMAScript 2020 inkluderer:

  • En "funktionsagtig" importere() modul indlæser syntaks til asynkront importere moduler med en dynamisk specifikator. Forslaget tilføjer en import (specificer) syntaktisk form, der fungerer på mange måder som en funktion. Det returnerer et løfte om modulets navneområdeobjekt for det anmodede modul, oprettet efter hentning, instantiering og evaluering af modulets afhængigheder sammen med selve modulet. Detspecifikator vil blive fortolket på samme måde som i et importere erklæring. Mens specifikator er en streng, det er ikke nødvendigvis en streng bogstavelig; således kode som import (`./language-packs / $ {navigator.language} .js`) vil arbejde. Dette var ikke muligt med det sædvanlige importere erklæringer. Med planen importere() foreslås at arbejde i både moduler og scripts, hvilket giver scriptkode et let asynkront indgangspunkt i modulverdenen og giver det mulighed for at starte kørsel af modulkode.
  • BigInt, et nyt tal, der er primitivt til at arbejde med vilkårlige præcisionstal. BigInt kan repræsentere tal større end to til 53. magt, det største antal JavaScript kan repræsentere pålideligt med Nummer primitiv. EN BigInt oprettes ved at tilføje n til slutningen af ​​heltalet eller ved at kalde konstruktøren.
  • Det matchAlle metode til strenge, til at producere en iterator til alle matchede objekter genereret af et globalt regulært udtryk. Begrundelsen bag dette forslag er, at hvis en udvikler har en streng og enten et klæbrig eller et globalt regulært udtryk med flere fangstgrupper, vil udvikleren muligvis gentage alle kampene, for hvilke der i øjeblikket er flere muligheder, men med begrænsninger. String # matchAll løser problemer ved at give adgang til alle fangende grupper og ikke synligt mutere det pågældende regulære ekspressionsobjekt.
  • Promise.allSettled, en ny Promise-kombinator, der ikke kortslutter. Dette returnerer et løfte, der er opfyldt med en række løftestatus-snapshots, men først efter at de oprindelige løfter er afgjort, dvs. er enten opfyldt eller afvist.
  • globalt Dette, der giver en universel måde at få adgang til det globale det her værdi.
  • En dedikeret eksport * som ns fra 'modul' syntaks til brug inden for moduler.
  • Øget standardisering af for-in enumeration order, delvis specificering af enumeration order i JavaScript.
  • import.meta, et værtsbefolket objekt i moduler, der kan indeholde kontekstuelle oplysninger. Dette fungerer som en JavaScript-metaproperty, der indeholder værtsspecifikke metadata om det aktuelle modul.
  • Nullish coalescing, en værdivalgsoperatør til bedre håndtering af sager, der involverer adgang til ejendom. Det er en syntaksfunktion, der forbedrer arbejdet med "nullish" -værdier (nul eller udefineret).
  • Valgfri kæde, en ejendomsadgangs- og funktionsopkaldsoperatør, der kortslutter, hvis værdien for adgang / påkald er ugyldig.

Den sidste opdatering til ECMAScript, ECMAScript 2019, indeholdt funktioner såsom prototype.flatMap til indlejrede arrays.

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