
Az ES8 élőben van! A nyár elején megjelent ES8 (más néven ES2017) a JavaScript-sel történő új kódolási lehetőségeket kínálja. Fedezzük fel őket.
Ha a Chrome legújabb verziójával rendelkezik, nyissa meg a konzolt, és kódoljunk együtt.

Object.values ()
Hozzáférés az objektumunk összes értékéhez bonyodalmak nélkül. Íme egy példa:
const countries = { BR: 'Brazil', DE: 'Germany', RO: 'Romania', US: 'United States of America'};
Object.values(countries); // ['Brazil', 'Germany', 'Romania', 'United States of America']
Object.entries
Fordítsa az objektum attribútumot egy sor attribútumba:
const countries = { BR: 'Brazil', DE: 'Germany', RO: 'Romania', US: 'United States of America'};
Object.entries(countries);
// [['BR', 'Brazil'], ['DE', 'Germany'], ['RO', 'Romania'], ['US','United States of America']]
Karaktersorozat (padStart és padEnd)
Ez visszaadja az átadott karakterláncot, hozzáadva a betűt és annak elejét vagy végét. A függvény meghatározása:
'string'.padStart(targetLength, padString)
'string'.padEnd(targetLength, padString)
Meg tudjuk csinálni:
'0.10'.padStart(10); // it return a string of length 10, padding empty spaces in the beginning
'hi'.padStart(1); // 'hi''hi'.padStart(5); // ' hi''hi'.padStart(5, 'abcd'); // 'abchi''hi'.padStart(10, 'abcd'); // 'abcdabcdhi'
'loading'.padEnd(10, '.'); // 'loading...'
// useful example making things easier to read'0.10'.padStart(12); // ' 0.10''23.10'.padStart(12); // ' 23.10''12,330.10'.padStart(12); // ' 12,330.10'
Object.getOwnPropertyDescriptors ()
Visszaadja az objektum összes saját (nem örökölt) tulajdonságleíróját. Az attribútumok a visszatérési objektum lehet: value
, writable
, get
, set
, configurable
és enumerable
.
const obj = { name: 'Pablo', get foo() { return 42; }};
Object.getOwnPropertyDescriptors(obj);//// {// "name": {// "value": "Pablo",// "writable":true,// "enumerable":true,// "configurable":true// },// "foo":{// "enumerable":true,// "configurable":true,// "get": function foo()// "set": undefined// }// }
Az egyik gyakorlati példa: A JavaScript rendelkezik egy módszerrel a tulajdonságok másolására Object.assign()
. Másolja azt az ingatlant, amelynek kulcsa van key
. Mint ez:
const value = source[key]; // gettarget[key] = value; // set
Bizonyos esetekben meghiúsul, mert nem másolja megfelelően a tulajdonságokat olyan alapértelmezett attribútumokkal, mint a getters, a setters és a nem írható tulajdonságok.
Például:
const objTarget = {};const objSource = { set greet(name) { console.log('hey, ' + name); }};Object.assign(objTarget, objSource);
objTarget.greet = 'love'; // trying to set fails, sets greet = 'love'
Megoldás:
const objTarget = {};const objSource = { set greet(name) { console.log('hey, ' + name); }};Object.defineProperties(objTarget, Object.getOwnPropertyDescriptors(objSource));
objTarget.greet = 'love'; // prints 'hey, love'
Vesszők követése a függvényparaméter-listákban és a hívásokban
Ez egy szintaktikai változás. Ez lehetővé teszi számunkra, hogy érvényes függvénydeklarációt írjunk vesszővel a végén.
getDescription(name, age,) { ... }
Async funkciók (async és várakozás)
Ez sokkal könnyebbé teszi az aszinkron funkciókkal való munkát:
function loadExternalContent() { return new Promise((resolve, reject) => { setTimeout(() => { resolve('hello'); }, 3000); });}
async function getContent() { const text = await loadExternalContent(); console.log(text);}
console.log('it will call function');getContent();console.log('it called function');
// it prints:
'it will call function' // synchronous'it called function' // synchronous'hello' // asynchronous (after 3 seconds)
Közös memória és atomok
A specifikáció szerint:
"A megosztott memória egy új SharedArrayBuffer típus formájában jelenik meg; Az új globális Atomics objektum atomi műveleteket biztosít a megosztott memória helyein, beleértve azokat a műveleteket is, amelyek felhasználhatók blokkoló szinkronizációs primitívek létrehozására."Ez azt jelenti, hogy:
Megosztott memória: több szál számára is lehetővé tehetjük ugyanazok az adatok olvasását és írását az új SharedArrayBuffer
konstruktorral.
Atomics: Használhatjuk az Atomics
objektumot, hogy megbizonyosodhassunk arról, hogy az írás vagy olvasás során semmi sem szakad meg a folyamat közepén. Tehát a műveletek befejeződnek, mielőtt a következő elindul.
Ha tetszett ez a cikk, feltétlenül kedvelje, sok tapsot adjon nekem - ez jelenti a világot az író számára? És kövessen engem, ha további cikkeket szeretne olvasni a kultúráról, a technológiáról és a startupokról.
Flávio H. de Freitas is an Entrepreneur, Engineer, Tech lover, Dreamer and Traveler. Has worked as CTO in Brazil, Silicon Valley and Europe.