Co wprowadziło ES7 do JavaScript

bugajsky.pl 4 lat temu

Od wprowadzenia ES2015, ECMA corocznie dokonuje aktualizacji specyfikacji na podstawie której dokonywane są zmiany w JavaScript. Dlatego w tym wpisie przedstawię Wam zmiany wprowadzone w ES7 (oficjalna nazwa ES2016). jeżeli jeszcze nie widzieliście wpisów omawiających zmiany w ES6, zachęcam Was do zapoznania się z nimi:

  • Co wprowadziło ES6 do JavaScript cz. 1
  • Co wprowadziło ES6 do JavaScript cz. 2
  • Co wprowadziło ES6 do JavaScript cz. 3

Array.prototype.includes

Przed wprowadzeniem standardu ES7 programiści chcąc sprawdzić czy dana wartość występuje w tablicy wykorzystywali metodę indexOf, która zwraca index znalezionego elementu w tabeli lub -1, gdy nie znaleziono szukanej wartości. Poniżej przedstawiam kod z wykorzystaniem metody indexOf.

const fruits = ['banana', 'apple', 'orange'] if (fruits.indexOf('banana')) { console.log('banana') }

Metoda ta powodowała problem, ponieważ w przypadku, kiedy zwracany był index 0 warunek przyjmował wartość false. Dlatego trzeba było stosować pewne obejście, które pozwalało na poprawne działanie kodu. Przykład z zastosowaniem obejścia.

const fruits = ['banana', 'apple', 'orange'] if (fruits.indexOf('banana')) { console.log('banana') } if (fruits.indexOf('banana') !== -1) { console.log('banana') }

Metoda include unika omówionego problemu, ponieważ zwraca wartość boolean. W przypadku znalezienia wartości zwracana jest wartość true, zaś kiedy nie ma elementu wartość false. W argumentach wywołania umożliwia przekazywanie szukanej wartości oraz miejsca rozpoczęcia poszukiwania. Dodatkowo pozwala także na pracę z wartością NaN. Poniżej przykład z użycie metody include.

const fruits = ['banana', 'apple', 'orange', NaN] if (fruits.includes('banana')) { console.log('banana') } if (fruits.includes(NaN)) { console.log('NaN') }

Operator potęgowania (Exponentiation Operator)

W ES6 aby osiągnąć potęgowanie należało utworzyć pętlę, funkcję rekurencyjną lub wykorzystać Math.pow().

console.log(Math.pow(7,12)) console.log(Math.pow(2,10))

Wraz ze standardem ES7 wprowadzony został operator potęgowania. Głównie wykorzystywany jest przez programistów zajmujących się matematyką, grafiką 3D, wirtualną rzeczywistością lub wizualizacji danych. Można także korzystać z przypisywania operacji. Rozwiązanie to jest zaczerpnięte z innych języków, np. Python. Poniżej przedstawiam przykładowy kod z wykorzystaniem nowego operatora.

console.log(7 ** 12) console.log(2 ** 10) const a = 7 ** 12 const b = 2 ** 10 let c = 7 c **= 12 let d = 2 d **= 7 console.log(c) console.log(d)

Podsumowanie

Jak mogliśmy zobaczyć w ES7 zostały wprowadzone dwa interesujące rozwiązania. Wprowadzenie metody include bardzo ułatwiło prace z tablicami i nie ma już potrzeby stosowania różnego rodzaju obejść. Z operatora potęgowania jak na razie korzystałem tylko w jednym projekcie, który realizowałem na potrzeby zaliczenia przedmiotu studenckiego. W nadchodzących wpisach będziecie mogli poznać kolejne odsłony specyfikacji ECMA.

Idź do oryginalnego materiału