Az ECMAScript vagy röviden ES a népszerű JavaScript programozási nyelv szabványosított változata. Célja, hogy biztosítsa a weboldalak interoperabilitását a különböző böngészőkön keresztül, valamint olyan funkciókat biztosítson, amelyek segítségével összetettebb és hatékonyabb webalkalmazások fejleszthetők. A szabvány legújabb verziója a cikk írásakor az ECMAScript 2022 volt, a 13. verzió, amely 2022 júniusában jelent meg.
Ez a cikk azonban az „ES6”-ról, más néven ECMAScript 6-ról vagy ECMAScript 2015-ről szól. Ennek az az oka, hogy az ES6 „több új, jelentősebb funkciót” vezetett be a JS-be.
Szóval igyál magadnak egy kávét ☕️, mielőtt elkezdenénk átmenni ezeken. Összehasonlítjuk az ES6 új funkcióit az ES5 korábbi megvalósításával is.
osztályok
Az ES6 egyik fő jellemzője az „osztályok” bevezetése. A JavaScript korábbi verzióiban a „prototipikus öröklődés” modellt használták objektumok és kapcsolataik létrehozására. Az ES6 osztályszintaxisa azonban ismerősebb és könnyebben használható szintaxist biztosít az objektumok létrehozásához és az öröklődés kezeléséhez.
Nézzünk egy példát arra, hogyan használják az új osztályszintaxist a JS-ben.
Példa
Az alábbi példában definiálunk egy Személy osztályt. Ennek az osztálynak van egy konstruktor függvénye, amely az osztályból létrehozott objektum létrehozására és inicializálására szolgál.
Az osztálynak van egy getName
nevű metódusa is, amellyel lekérhető a személy objektum neve.
class Person { constructor(name, age) { this.name = name; this.age = age; } getName() { return this.name; } }
Objektum létrehozásához az osztályból a new
kulcsszót használjuk, amelyet az osztály neve követ.
Az alábbiakban létrehozunk egy új Személy objektumot 'John'
névvel és életkorral 30
, és hozzárendeljük egy person
nevű változóhoz.
const person = new Person('John', 30); console.log(person.getName()); // Output: "John"
A person
objektum getName
metódusának eléréséhez a .
operátort használjuk, amelyet a metódusnév követ. Ebben az esetben a person.getName()
hívása a 'John'
értéket adja vissza.
Kíváncsi vagy, hogyan tettük volna meg a fentieket az ES5-ben?
Válasz: függvények és a prototípus tulajdonság használata.
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.getName = function() { return this.name; };
A függvény konstruktorként használható objektumok létrehozására és inicializálására. A getName
metódus hozzáadódik az objektum prototípusához, amely lehetővé teszi, hogy a függvényből létrehozott objektumok örököljék.
Objektum létrehozásához az 'osztályból' a new
kulcsszót használjuk, amelyet a függvény neve követ.
var person = new Person('John', 30); console.log(person.getName()); // Output: "John"
Itt létrehozunk egy új Személy objektumot 'John'
névvel és életkorral 30
, és hozzárendeljük a person
nevű változót (megjegyzés: a var
t használtuk a változó deklarálásához – lásd a következő részt). A person
objektum getName
metódusának eléréséhez a .
operátort használjuk, amelyet a metódus neve követ. Ebben az esetben a person.getName()
hívása a 'John'
értéket adja vissza.
Változó deklarációk: let és const
Az ES6 másik figyelemre méltó tulajdonsága a let
és const
változódeklarációk használatának képessége.
Mind a let
, mind a const
deklaráció lehetővé teszi a "blokkhatókörű" változók deklarálását.
A const
deklaráció lehetővé teszi olyan változók deklarálását, amelyek csak olvasható értékkel rendelkeznek (azaz nem rendelhetők újra). Ez hasznos lehet a változók ütközésének kockázatának csökkentésében és a kód olvashatóbbá tételében.
Így a let
paraméterrel deklarált változók hozzárendelhetők új értékekhez, de a const
-al deklarált változók nem.
Példa
Az alábbi példában a x
változó a let
kulcsszóval van deklarálva, és a 10
értékkel inicializálódik. A y
változót a const
kulcsszó deklarálja, és a 20
értékkel inicializálja. Ezután újra hozzá tudjuk rendelni a x
értékét a 20
-hoz, de ha megpróbáljuk a y
értékét hozzárendelni a 30
-hoz, az hibát okoz, mert a y
csak olvasható változó.
let x = 10; const y = 20; x = 20; // Valid y = 30; // Invalid, throws an error
Kíváncsi vagy, hogyan tettük volna meg a fentieket az ES5-ben?
Az ES5-ben a var
kulcsszót használjuk a változók deklarálására. A var
paraméterrel deklarált változóknak függvényhatókörük van, ami azt jelenti, hogy elérhetők azon a függvényen belül, amelyben deklarálták őket, valamint a függvénybe beágyazott összes függvényen belül.
var x = 10; x = 20; // Valid
Ebben a példában a x
változót a var
kulcsszóval deklaráljuk, és a 10
értékkel inicializáljuk. Ezután újra hozzárendelhetjük a x
értékét a 20
értékhez. Vegye figyelembe, hogy az ES5-ben minden változó az aktuális hatókör tetejére kerül, ami azt jelenti, hogy a deklarálásuk előtt elérhetők. Ez zavaró viselkedéshez vezethet, és ez az egyik oka annak, hogy az ES6-ban bevezették a let
és const
deklarációt.
Tömb módszerek
Az ES6 számos új módszert is bevezetett a tömbökkel való munkavégzéshez. A "map", "filter" és "reduce" metódusok lehetővé teszik egy tömb elemeinek tömörebb és olvashatóbb átalakítását és kicsinyítését. Ezenkívül a "for-of ciklus" lehetővé teszi, hogy egy tömb elemei vagy más iterálható objektumok tömörebb módon iteráljon.
Tekintse meg az MDN-dokumentumokat a Javascriptben elérhető "tömbmódszerek teljes listájáért".
Példa
Az ES6 map
, filter
és reduce
metódusai tömörebb és olvashatóbb módot biztosítanak egy tömb elemeinek átalakítására és csökkentésére.
Tekintsünk egy számsort:
let numbers = [1, 2, 3, 4, 5];
Most pedig nézzük meg, hogy az egyes módszerek mit tesznek lehetővé.
.map(() =› {})
Az map
metódus lehetővé teszi új tömb létrehozását a tömb minden elemén egy megadott függvény meghívásával.
// .map() method let squaredNumbers = numbers.map(x => x * x); console.log(squaredNumbers); // Output: [1, 4, 9, 16, 25]
Ebben a példában az map
metódus a numbers
tömbön kerül meghívásra egy nyílfüggvénnyel, amely négyzetessé teszi az egyes elemeket. Az eredményül kapott squaredNumbers
tömb tartalmazza az numbers
tömb elemeit négyzetesen.
.filter(() =› {})
Az filter
metódus lehetővé teszi új tömb létrehozását olyan elemekkel, amelyek megfelelnek egy bizonyos tesztnek/feltételnek.
// .filter() method let evenNumbers = numbers.filter(x => x % 2 == 0); console.log(evenNumbers); // Output: [2, 4]
Ebben a példában az filter
metódus a numbers
tömbön kerül meghívásra egy nyílfüggvénnyel, amely ellenőrzi, hogy minden elem páros-e. Az eredményül kapott evenNumbers
tömb csak a numbers
tömb páros elemeit tartalmazza.
.reduce(() =› {}, …)
A reduce
metódus lehetővé teszi, hogy egy tömb elemeit egyetlen értékre csökkentse.
// .reduce() method let sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue); console.log(sum); // Output: 15
Ebben a példában a reduce
metódust a numbers
tömb egy nyílfüggvénnyel hívja meg, amely összegzi az elemeket. Az eredményül kapott sum
változó tartalmazza a numbers
tömb összes elemének összegét.
for( … of …) hurok
Az ES6 for-of
ciklusa lehetővé teszi az iterálható objektumok, például egy tömb értékein való iterációt. Ez egy tömörebb és könnyebben használható szintaxis, mint a hagyományos for
ciklus.
// for-of loop let numbers = [1, 2, 3, 4, 5]; for (let number of numbers) { console.log(number); } // Output: 1 2 3 4 5
Ebben a példában a for-of
ciklus a numbers
tömb elemei fölött iterál. Minden iterációnál az aktuális elem értéke hozzá van rendelve a number
változóhoz, és a ciklustörzs végrehajtásra kerül. Ebben az esetben a ciklustörzs egyszerűen naplózza a number
értékét a konzolon. Ez azt eredményezi, hogy a numbers
tömb értékei soronként egyet naplóznak a konzolon.
Kíváncsi vagy, hogyan tettük volna meg a fentieket az ES5-ben?
Az ES5-ben a map
, filter
és reduce
metódusok for ciklusok használatával vannak megvalósítva – lásd alább.
ES5 „térkép” megfelelője:
A map
metódus egy for ciklus segítségével valósul meg, amely a numbers
tömb elemei felett iterál, és az egyes elemek négyzetes értékét egy új, squaredNumbers
nevű tömbbe tolja.
var numbers = [1, 2, 3]; // .map() ES5 equivalent var squaredNumbers = []; for (var i = 0; i < numbers.length; i++) { squaredNumbers.push(numbers[i] * numbers[i]); } console.log(squaredNumbers); // Output: [1, 4, 9]
ES5 „szűrő” megfelelője:
A filter
metódus egy for ciklus segítségével valósul meg, amely a numbers
tömb elemei fölött iterál, és csak a páros elemeket tolja át egy új, evenNumbers
nevű tömbbe.
var numbers = [1, 2, 3, 4, 5]; // .filter() ES5 equivalent var evenNumbers = []; for (var i = 0; i < numbers.length; i++) { if (numbers[i] % 2 == 0) { evenNumbers.push(numbers[i]); } } console.log(evenNumbers); // Output: [2, 4]
ES5 „csökkentés” megfelelője:
A reduce
metódus egy for ciklus segítségével valósul meg, amely a numbers
tömb elemei felett iterál, és a sum
változóban összegzi azokat.
var numbers = [1, 2, 3, 4, 5]; // .reduce() ES5 equivalent var sum = 0; for (var i = 0; i < numbers.length; i++) { sum += numbers[i]; } console.log(sum); // Output: 15
ES5 „for-of” ciklus megfelelője:
Az alábbi ES5 példában a hagyományos for
ciklust használjuk a numbers
tömb elemei közötti iterációhoz. A ciklus a numbers
tömb length
tulajdonságát használja az iterációk számának meghatározásához, a []
operátort pedig a tömb elemeinek eléréséhez. Minden iterációnál az aktuális elem értéke naplózásra kerül a konzolon. Ez azt eredményezi, hogy a numbers
tömb értékei soronként egyet naplóznak a konzolon.
// for-of loop var numbers = [1, 2, 3, 4, 5]; for (var i = 0; i < numbers.length; i++) { console.log(numbers[i]); } // Output: 1 2 3 4 5
Sablon literálok és Spread operátor
Az ES6-ban bevezetett további figyelemre méltó jellemzők a „sablon literálok”, amelyek lehetővé teszik karakterláncok létrehozását beágyazott kifejezésekkel, valamint a „spread operátor”, amely lehetővé teszi egy tömb vagy objektum több elemre vagy változóra való bővítését.
Példa
Nézzünk néhány példát erre a két ES6 funkcióra.
Sablonok
A sablonliterálok az ES6-ban tömörebb és könnyebben használható szintaxist jelentenek kifejezéseket tartalmazó karakterláncok létrehozására. Ezek a `
jelölések közé vannak zárva, és tartalmazhatnak helyőrzőket, amelyeket ${expression}
képvisel, és amelyeket a karakterlánc kiértékelésekor a megfelelő értékekkel helyettesítenek.
// Template literals let name = 'John'; let message = `Hello, ${name}!`; console.log(message); // Output: "Hello, John!"
Ebben a példában a sablonliterál a name
változó értékét tartalmazó karakterlánc létrehozására szolgál. A name
változó közvetlenül a karakterláncba kerül beillesztésre. Ennek eredményeként a 'Hello, John!'
karakterlánc naplózásra kerül a konzolon.
Spread Operator
Az ES6 terjedési operátora lehetővé teszi, hogy egy iterálható objektumot, például egy tömböt vagy egy karakterláncot egyedi elemekre bontson ki. Ezt három pont (...
) jelöli.
// Spread operator let numbers = [1, 2, 3]; let newNumbers = [...numbers, 4, 5]; console.log(newNumbers); // Output: [1, 2, 3, 4, 5]
Ebben a példában a spread operátort használjuk a numbers
tömb egyedi elemekre való bővítésére, amelyek aztán a newNumbers
tömbbe kerülnek. A newNumbers
tömb tartalmazza a numbers
tömb összes elemét, valamint a további 4
és 5
elemeket. Ennek eredményeként a [1, 2, 3, 4, 5]
tömb naplózásra kerül a konzolon.
És itt van egy példa a spread operátor objektumokra való alkalmazására:
let person = { name: 'John' }; let newPerson = { ...person, age: 30 }; console.log(newPerson); // Output: { name: 'John', age: 30 }
A spread operátor arra is használható, hogy egy tömb elemeit "egy függvény argumentumaiba" vagy egy másik tömb elemeibe szórja. Például:
let numbers = [1, 2, 3]; console.log(Math.max(...numbers)); // Output: 3 let moreNumbers = [4, 5, ...numbers]; console.log(moreNumbers); // Output: [4, 5, 1, 2, 3]
Kíváncsi vagy, hogyan tettük volna meg a fentieket az ES5-ben?
ES6 „sablonliterálok” megfelelője
var name = 'John'; var message = 'Hello, ' + name + '!'; console.log(message); // Output: "Hello, John!"
Spread Operator
Az ES5-ben a karakterlánc-összefűzéssel olyan karakterláncokat hozhat létre, amelyek kifejezéseket tartalmaznak. Ha egy változó értékét bele akarja foglalni egy karakterláncba, a +
operátorral összefűzheti a karakterláncot a változóval. Ha egy kifejezés eredményét bele szeretné foglalni egy karakterláncba, zárójelekkel csoportosíthatja a kifejezést, majd összefűzheti a karakterláncot a kifejezéssel.
Az ES5-ben a Array
objektum concat
metódusával két tömböt egyesíthet egy új tömbbé.
// ES5 "Spread operator" equivalent var numbers = [1, 2, 3]; var newNumbers = numbers.concat([4, 5]); console.log(newNumbers); // Output: [1, 2, 3, 4, 5]
Hasonlóképpen, az ES5-ben a Object.assign
metódussal több objektum tulajdonságait egyesítheti egy célobjektumban.
var person = { name: 'John' }; var newPerson = Object.assign({}, person, { age: 30 }); console.log(newPerson); // Output: { name: 'John', age: 30 }
Import és export
Az ES6 bevezette a import
és export
utasításokat is, amelyek lehetővé teszik, hogy más modulokból származó kódot is beépítsen a projektbe. Ez hasznos lehet a kód rendszerezéséhez és a kód több fájlban való újrafelhasználásához.
Példa
Ha másik modulból szeretne kódot importálni, használhatja az import utasítást, például:
import { functionName } from './module';
A kód exportálásához egy modulból használhatja az export utasítást, például:
export function functionName() { ... }
Kíváncsi vagy, hogyan tettük volna meg a fentieket az ES5-ben?
Az ES5-ben használhatja a module.exports
és require
kulcsszavakat, hogy az egyik modulból származó kódot egy másik modulba foglalhassa. A module.exports
kulcsszó annak meghatározására szolgál, hogy mely változók vagy függvények legyenek elérhetőek más modulokba való beillesztéshez. A require
kulcsszó egy modul kódjának az aktuális modulban való szerepeltetésére szolgál.
// module.js function sayHi(name) { console.log(`Hi, ${name}!`); } module.exports = sayHi; // main.js var sayHi = require('./module'); sayHi('John'); // Output: "Hi, John!"
Vegye figyelembe, hogy az ES5-ben a module
és exports
változók nem globálisak, hanem helyi változók, amelyeket minden egyes modulhoz létrehoznak. Arra szolgálnak, hogy meghatározzák, mely változókat vagy függvényeket kell elérhetővé tenni más modulokba való beillesztéshez, illetve más modulokból származó kódok felvételére.
Async-wait
Az ES6 bevezette az async és await kulcsszavakat is, amelyek lehetővé teszik az aszinkron kód írását szinkronosabb megjelenésű stílusban. Ez megkönnyítheti az aszinkron műveleteket magában foglaló kódok olvasását és írását, például hálózati kéréseket vagy ígéretekkel való munkát.
Példa
Az Async/await egy szintaxis az ES6-ban, amely lehetővé teszi, hogy aszinkron kódot írjon szinkron stílusú módon. Lehetővé teszi, hogy a await
kulcsszó használatával várja meg egy aszinkron művelet befejezését, mielőtt folytatná a kód többi részével.
async function getData() { const response = await fetch('<https://example.com/data>'); const data = await response.json(); return data; }
Ebben az ES6-példában a getData
függvény aszinkron függvényként van definiálva, ami azt jelenti, hogy tartalmazhatja a await
kulcsszót. A függvény a fetch
metódus használatával küld egy GET kérést a megadott URL-re, amely ebben az esetben a 'https://example.com/data»'. Ezután megvárja a választ, és hozzárendeli a response
változóhoz. Ezután a válaszobjektum .json()
metódusával elemzi a válasz törzsét JSON-ként, és hozzárendeli a data
változóhoz. Végül a függvény a data
változót adja vissza, amely a JSON objektum.
Az Async/await megkönnyíti az aszinkron kód írását és olvasását, mivel lehetővé teszi olyan kód írását, amely úgy néz ki, mintha szinkronban futna, miközben a motorháztető alatt továbbra is aszinkron. Ez különösen akkor lehet hasznos, ha összetett aszinkron kóddal foglalkozik, mivel segíthet elkerülni a visszahívási poklot.
Kíváncsi vagy, hogyan tettük volna meg a fentieket az ES5-ben?
Az ES5-ben a then
és catch
módszerek használatára korlátozódtunk.
A then
és catch
metódusok lehetővé teszik az ígéretek sikeres és hibás eseteinek láncolható kezelését. Ez akkor lehet hasznos, ha összetett aszinkron kóddal dolgozik, mivel lehetővé teszi az aszinkron művelet különböző szakaszainak logikájának elkülönítését.
Lássuk ezeket működés közben.
function getData() { return fetch('<https://example.com/data>') .then(function(response) { console.log(response); }) .catch(function(error) { console.error(error); }); } getData();
Ebben a példában a getData
függvény a fetch
függvény által visszaadott ígéretet adja vissza. A then
metódus egy sikeres kezelő függvény megadására szolgál, amely az ígéret feloldásakor kerül meghívásra. A catch
metódus egy hibakezelő függvény megadására szolgál, amely az ígéret elutasításakor kerül meghívásra.
Vegye figyelembe, hogy az ES5-ben az ígéret then
és catch
metódusait kell használnia egy aszinkron művelet siker- és hibaeseteinek kezelésére. Az Async/await viszont lehetővé teszi, hogy a await
kulcsszó használatával várja meg egy aszinkron művelet befejezését, mielőtt folytatná a kód többi részével, ami megkönnyítheti a kód olvasását és írását.
Nyíl funkciók
Az ES6 nyílfüggvényei tömörebb és könnyebben használható szintaxis a függvények meghatározásához. A =>
szintaxis használatával vannak meghatározva, és nincs saját this
, arguments
, super
vagy new.target
kötésük.
Példa
Íme egy példa egy függvény meghatározására a nyíl függvény szintaxisával az ES6-ban:
const multiply = (x, y) => x * y; console.log(multiply(2, 3)); // Output: 6
Ebben a példában a multiply
függvény a nyíl függvény szintaxisával van definiálva. Két argumentumra van szükség, x
és y
, és visszaadja a terméküket. A multiply
függvény ezután a 2
és 3
argumentumokkal kerül meghívásra, ami a 6
érték naplózását eredményezi a konzolon.
A nyílfüggvényeket gyakran használják a reguláris függvények alternatívájaként olyan esetekben, amikor a függvénytörzs egyszerű, és csak egyetlen kifejezésből áll. Különösen hasznosak lehetnek, ha magasabb rendű függvényekkel dolgozik, mint például a map
, filter
és reduce
, mivel lehetővé teszik tömörebb kód írását.
Íme egy példa egy nyílfüggvény használatára a map
metódussal az ES6-ban:
const numbers = [1, 2, 3]; const squaredNumbers = numbers.map(x => x * x); console.log(squaredNumbers); // Output: [1, 4, 9]
Ebben a fenti példában a squaredNumbers
tömb a map
metódus meghívásával jön létre a numbers
tömbön egy nyílfüggvénnyel, amely minden elemet négyzetre emel. Az eredményül kapott squaredNumbers
tömb tartalmazza a numbers
tömb elemeit négyzetesen.
A nyílfüggvények is használhatók metódusok tömör meghatározására objektumliterálokban és osztályokban. Íme egy példa arra, hogyan lehet nyílfüggvényt használni metódus meghatározására egy objektumliterálban az ES6-ban:
const person = { name: 'John', sayHi: () => console.log(`Hi, my name is ${this.name}`) }; person.sayHi(); // Output: "Hi, my name is John"
Ebben a fenti példában a sayHi
metódus az objektum literáljában található nyílfüggvény segítségével van definiálva. A sayHi
metódus egy üdvözlést naplóz a konzolnak, amely tartalmazza a name
tulajdonság értékét. A sayHi
metódus meghívásakor naplózza az üdvözlést a konzolon.
A nyílfüggvények az ES6 hasznos funkciói, amelyek segítségével tömörebb és olvashatóbb kódokat írhat. Különösen hasznosak, ha magasabb rendű függvényekkel dolgozunk, és metódusokat határozunk meg objektumliterálokban és osztályokban.
Kíváncsi vagy, hogyan tettük volna meg a fentieket az ES5-ben?
Az ES5-ben ehelyett a function
kulcsszót használhatja függvények meghatározásához. Íme egy példa egy függvény meghatározására a function
kulcsszó használatával az ES5-ben:
function multiply(x, y) { return x * y; } console.log(multiply(2, 3)); // Output: 6
Ez a példa egy multiply
nevű függvényt határoz meg, amely két argumentumot vesz fel, a x
és y
argumentumot, és visszaadja a terméküket. A multiply
függvény ezután a 2
és 3
argumentumokkal kerül meghívásra, ami a 6
érték naplózását eredményezi a konzolon.
Mások?
Jó, hogy idáig eljutott. Hogy őszinte legyek, az ES6 túl sok funkcióval rendelkezik, és ezeket mindenképpen érdemes tudni. Ennek ellenére tisztában vagyok vele, hogy ez a cikk már a vártnál sokkal tovább húzódott. Tehát ehelyett csak megemlítek néhány további ES6 funkciót, és hagyom házi feladatként, hogy egy másik alkalommal kövessen:
- Alapértelmezett paraméterek: A függvények alapértelmezett paramétereit használhatja egy argumentum alapértelmezett értékének megadásához, ha a függvény meghívásakor nincs megadva érték.
- Rest paraméterek: A rest paraméterek segítségével meghatározatlan számú argumentumot tömbként jeleníthet meg.
- Tömb destrukció: A tömb destrukciójával értékeket nyerhet ki egy tömbből, és tömören hozzárendelheti azokat a változókhoz.
- Objektumdestrukció: Az objektum-destrukció segítségével tulajdonságokat vonhat ki egy objektumból, és tömören hozzárendelheti azokat változókhoz.
- Ígéretek: Az ígéretek az aszinkron műveletek hatékonyabb és rugalmasabb kezelésének egyik módja. Lehetővé teszik olyan kód írását, amely könnyebben olvasható és karbantartható, különösen összetett aszinkron műveletek esetén.
- Szimbólumok: A szimbólumok egy új primitív adattípus, amellyel egyedi azonosítókat lehet létrehozni az objektumokhoz. Használhatók a karakterláncok alternatívájaként, ha ember által nem olvasható azonosítót kíván létrehozni.
- Reflect: A
Reflect
objektum olyan metódusokat biztosít, amelyek segítségével meta-műveleteket hajthatunk végre az objektumokon, mint például egy tulajdonság értékének lekérése vagy beállítása vagy metódus meghívása. - „Proxyk”: A proxyk olyan objektumok, amelyek elfoghatják és módosíthatják a más objektumokon végrehajtott műveleteket, például egy tulajdonság értékének lekérését vagy beállítását, vagy metódus hívását. Használhatók burkolóelemek létrehozására az objektumok körül, amelyek további funkciókat vagy viselkedést biztosítanak.
Majdnem vége…….
Következtetés
Összefoglalva, az ES6 a JavaScript nyelv jelentős frissítése, amely számos új funkciót és fejlesztést tartalmaz.
Ezek a funkciók megkönnyítik a kód írását és karbantartását JavaScriptben, mivel tömörebb és kifejezőbb szintaxist biztosítanak a gyakori feladatokhoz és mintákhoz.
Ha még nem ismeri az ES6-ot, javasoljuk, hogy kezdje el megtanulni és használja ezeket a funkciókat a kódjában, mivel ezek segíthetnek hatékonyabb és karbantarthatóbb kód írásában. Ha már ismeri az ES6-ot, fontos, hogy naprakész legyen a nyelv legújabb fejlesztéseivel és bevált gyakorlataival, hogy a leghatékonyabb és legeredményesebb technikákat használja. Tapasztalata szintjétől függetlenül az ES6 fontos eszköz, amellyel jobb kódot írhat JavaScriptben.
Befejezésül néhány bevált gyakorlattal fogok foglalkozni az ES6 néhány funkciójával kapcsolatban, amelyekkel ebben a cikkben találkoztunk:
- Használja a const változót azokhoz a változókhoz, amelyeket soha nem rendelnek hozzá: Ha a
const
paramétert használja olyan változók deklarálására, amelyeket soha nem rendelnek újra, akkor megelőzheti a véletlen átrendeléseket, és világossá teheti más fejlesztők számára, hogy a változó értékét nem szabad megváltozott. - Használja az letet az újra hozzárendelt változókhoz: Ha át kell rendelnie egy változót, használja a
let
paramétert a változó deklarálásához. Ez segít abban, hogy a változó csak abban a blokkban legyen elérhető, amelyben deklarálták, ami segíthet megelőzni a nem kívánt mellékhatásokat. - Sablonliterálok használata karakterlánc-interpolációhoz: Használjon sablonliterálokat az összefűzés helyett, hogy kifejezéseket foglaljon a karakterláncokba, és többsoros karakterláncokat hozzon létre. A sablonliterálok olvashatóbbak és könnyebben írhatók, mint a karakterlánc-összefűzés.
- Nyílfüggvények használata tömör és kifejező kódhoz: A nyílfüggvények segítségével tömör és kifejező módon határozhat meg függvényeket. A nyílfüggvények különösen hasznosak, ha magasabb rendű függvényekkel dolgozunk, és metódusokat definiálunk objektumliterálokban és osztályokban.
- Használja a spread operátort tömbök és objektumok egyesítéséhez: Használja a spread operátort a tömbök és objektumok tömör és kifejező egyesítéséhez. A spread operátor különösen akkor hasznos, ha azonos tulajdonságokkal rendelkező tömbökkel és objektumokkal dolgozik.
- Használja aszinkront és várjon az egyszerűbb aszinkron kódhoz: Használja az aszinkront, és várja meg, hogy szinkron stílusú módon írjon aszinkron kódot. Az aszinkron és a várakozás megkönnyíti az aszinkron kód írását és olvasását, különösen összetett aszinkron műveletek esetén.
Köszönjük, hogy lépést tartottál – biztosan kiérdemelted magadnak egy kis szünetet!