
Beszéljünk a JavaScript legújabb verziójáról: ECMAScript 2016 (közismertebb nevén ES7). ES7 hoz két új funkciók: Array.prototype.includes()
és az új exponenciális operátor: **
.
Az Array.prototype.includes ()
Elmúltak azok az idők, amikor korábban .indexOf()
tudtuk, hogy létezik- e egy elem egy tömbben.
A kulcsszó a „lét”.
.indexOf()
akkor jó, ha meg akarjuk tudni, hogy egy adott elem melyik indexnél jelenik meg.
De ha az a célunk, hogy megtudjuk, létezik- e egy adott elem egy tömbben, akkor .indexOf()
ez nem a legjobb megoldás. Az ok pedig egyszerű: Valami létezésének lekérdezésekor logikai értéket várunk, nem számot .
Array.prototype.includes()
pontosan ezt teszi. Meghatározza, hogy egy adott elem létezik-e egy tömbben, true
ha igen , akkor visszatér false
.
A specifikációba
Array.prototype.includes ( searchElement [ , fromIndex ] )
searchElement
- a keresendő elem.fromIndex
(opcionális) - az index, ahonnan el lehet kezdeni a keresést.
A specifikációba belemerülni hatalomkeresésnek tűnik.

A specifikáció szerint:
Menjünk lépésről lépésre, és próbáljuk példákkal megérteni a specifikációt.
- A különbség itt a 4 elem helyzete. Mivel az első példánk a 4-et az utolsó pozícióba helyezi, az include a teljes tömböt fogja keresni. Specifikáció szerint
.includes()
azonnal visszatér, miután megtalálta asearchElement
. Ez sokkal gyorsabbá teszi második műveletünket. - A SameValueZero algoritmus és a szigorú egyenlőség-összehasonlítás (által használt
.indexOf()
) különbsége az, hogy lehetővé teszi a NaN elemek detektálását . - Visszaadja a logikai értéket,
true
amikor az elem megtalálható ésfalse
más módon. Nincs több index eredménye? - Ahogy szemben
.indexOf()
,.includes()
nem hagyja hiányzik tömbelemek. Ehelyett meghatározatlan értékként kezeli őket .
Kezd érezni az erőt?
Még hozzá sem nyúltunk fromIndex
.
Ellenőrizzük a specifikációt:
Az opcionális második argumentumfromIndex
alapértelmezés szerint 0
(azaz a teljes tömböt keresik). Ha nagyobb vagy egyenlő a tömb hosszával, akkor hamis értéket ad vissza, vagyis a tömb nem kerül keresésre. Ha ez negatív, ahogy van, alkalmazzuk a eltolás a végén a tömb, hogy kiszámítsuk fromIndex
. Ha a számított index kisebb, mint 0
, akkor az egész tömböt meg fogja keresni.- Ha nincs
fromIndex
megadva, akkor az alapértelmezett értéket0
veszi fel, és az egész tömböt megkeresi. .includes()
azonnal hamis értéket ad vissza, ha a értékefromIndex
nagyobb, mint a tömb hossza.- Ha
fromIndex
negatív, akkor ez az érték számíthatóarray.length — fromIndex
. Ez különösen akkor hasznos, ha az utolsó elemeken keresünk. PéldáulfromIndex = -5
megegyezik az utolsó 5 elem keresésével. - Annak elkerülése érdekében
.includes()
, hogy afromIndex
számított érték 0 alatt legyen, a teljes tömböt megkeresi. Inkább törnék?
OK - egy utolsó új funkció ...
The Exponential Operator (**)
Vártuk azt a napot, amikor exponenciálisan játszhatunkolyan számok, amilyeneket összeadással, kivonással, szorzással, osztással játszunk.
Nos, itt a nap.
Az operátor **
pontosan ugyanúgy viselkedik, mint Math.pow()
. Visszaadja az első operandus emelésének eredményét a második erejére (pl x ** y
.).
Ez az!
Most megvan az ES7 ereje ! Használd jól!

Köszönet ?
- Axel Rauschmayer 2ality.com
- ECMAScript® 2016 nyelvi specifikáció
- Minden He-Man rajongónak
- freeCodeCamp a közzétételhez ❤️
Feltétlenül nézze meg az ES6-os cikkeket:
Fedezzük fel az ES6 generátorokat
Generátorok, más néven, az iterable megvalósítása. medium.freecodecamp.org Ó, igen! Async / Várj
Az async / await az új JavaScript-szintaxis, amely aszinkron függvényt deklarál. medium.freecodecamp.org