A JavaScript legújabb verziója csak 2 új funkcióval rendelkezik. Így működnek.

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, trueha 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.

  1. 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 a searchElement. Ez sokkal gyorsabbá teszi második műveletünket.
  2. 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 .
  3. Visszaadja a logikai értéket, trueamikor az elem megtalálható és falsemás módon. Nincs több index eredménye?
  4. 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 argumentum fromIndexalapé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.
  1. Ha nincs fromIndexmegadva, akkor az alapértelmezett értéket 0veszi fel, és az egész tömböt megkeresi.
  2. .includes()azonnal hamis értéket ad vissza, ha a értéke fromIndexnagyobb, mint a tömb hossza.
  3. Ha fromIndexnegatí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ául fromIndex = -5megegyezik az utolsó 5 elem keresésével.
  4. Annak elkerülése érdekében .includes(), hogy a fromIndexszá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