av Sanket Meghani
sedan ECMAScript 2015 (även känd som ES6) släpptes har den introducerat en enorm uppsättning nya funktioner. De inkluderar pilfunktioner, uppsättningar, kartor, klasser och destruktion och mycket mer. På många sätt är ES2015 nästan som att lära sig en ny version av JavaScript.
Ecma Technical Committee 39 styr ECMA-specifikationen. De bestämde sig för att släppa en ny version av ECMAScript varje år från och med 2015. En årlig uppdatering innebär inga fler stora utgåvor som ES6.
ECMAScript 2016 introducerade bara två nya funktioner:
- Array.prototypstadiet.inkluderar ()
- exponentiering operatör
Array.prototypstadiet.inkluderar()
Array.prototype.includes()
kontrollerar arrayen för value
som skickas som en argument
. Den returnerar true
om matrisen innehåller value
, annars returnerar den false
.
tidigare behövde vi använda Array.prototype.indexOf()
för att kontrollera om den givna arrayen innehåller ett element eller inte.
let numbers = ;
if(numbers.indexOf(2) !== -1) { console.log('Array contains value');}
med ECMA2016 kan vi skriva:
if(numbers.includes(2)) { console.log('Array contains value');}
Array.prototype.includes()
hanterar NaN
bättre än Array.prototype.indexOf()
. Om matrisen innehåller NaN
, returnerar indexOf()
inte ett korrekt index när du söker efter NaN
.
Array.prototype.includes()
returnerar rätt värde när du söker efter NaN
.
NaN
är en egenskap hos JavaScript global object och representerar ett värde som inte är ett tal. Det finns kända egenskaper när man jämför NaN
med ett annat värde. Dessa behandlas i Array.prototype.includes()
, men inte i Array.protoype.indexOf
.
let numbers = ;
console.log(numbers.indexOf(NaN)); //Prints -1console.log(numbers.includes(NaN)); //Prints true
Exponentieringsoperatör
JavaScript stöder redan många aritmetiska operatörer som +, -, *
och mer.
ECMAScript 2016 introducerade exponentieringsoperatören, **
.
den har samma syfte som Math.pow()
. Det returnerar det första argumentet som tagits upp till kraften i det andra argumentet.
let base = 3;let exponent = 4;let result = base**exponent;
console.log(result); //81
slutsats
nya funktioner som introducerades av ECMA2016 ger praktiska alternativ till befintliga funktioner.
ser framåt, ECMA2017 slutfördes i Juni i år. Nya funktioner inkluderar async/await
, SharedArrayBuffer
och några användbara metoder för att Object.prototype
.