Introduktion til de nye funktioner, som ECMAScript 2016 (ES7) føjer til JavaScript

Siden ECMAScript 2015 (også kendt som ES6) blev frigivet, har det introduceret et stort sæt nye funktioner. De inkluderer pilfunktioner, sæt, kort, klasser og destruktion og meget mere. På mange måder er ES2015 næsten som at lære en ny version af JavaScript.

Ecma Technical Committee 39 styrer ECMA-specifikationen. De besluttede at frigive en ny version af ECMAScript hvert år med start i 2015. En årlig opdatering betyder ikke flere store udgivelser som ES6.

ECMAScript 2016 introducerede kun to nye funktioner:

  • Array.prototype.includes ()
  • Eksponentieringsoperatør

Array.prototype.includes ()

Array.prototype.includes()kontrollerer arrayet for valuebestået som en argument. Den returnerer, truehvis matrixen indeholder value, ellers returnerer den false.

Før havde vi brug for Array.prototype.indexOf()at kontrollere, om det givne array indeholder et element eller ej.

let numbers = [1, 2, 3, 4];
if(numbers.indexOf(2) !== -1) { console.log('Array contains value');}

Med ECMA2016 kan vi skrive:

if(numbers.includes(2)) { console.log('Array contains value');}

Array.prototype.includes()håndterer NaNbedre end Array.prototype.indexOf(). Hvis matrixen indeholder NaN, indexOf()returnerer det ikke et korrekt indeks, mens du søger efter NaN.

Array.prototype.includes()returnerer den korrekte værdi, når du søger efter NaN.

NaNer en ejendom af det globale JavaScript-objekt og repræsenterer en værdi, der ikke er et nummer. Der er kendte særheder, når man sammenligner NaNmed en anden værdi. Disse er adresseret i Array.prototype.includes(), men ikke i Array.protoype.indexOf.

let numbers = [1, 2, 3, 4, NaN];
console.log(numbers.indexOf(NaN)); //Prints -1console.log(numbers.includes(NaN)); //Prints true

Eksponentieringsoperatør

JavaScript understøtter allerede mange aritmetiske operatorer som +, -, *og mere.

ECMAScript 2016 introducerede eksponentiering operatør, **.

Det har det samme formål som Math.pow(). Det returnerer det første argument hævet til styrken i det andet argument.

let base = 3;let exponent = 4;let result = base**exponent;
console.log(result); //81

Konklusion

Nye funktioner introduceret af ECMA2016 giver praktiske alternativer til eksisterende funktioner.

Ser vi fremad, blev ECMA2017 afsluttet i juni i år. Nye funktioner omfatter async/await, SharedArrayBufferog nogle nyttige metoder til Object.prototype.