ES8: Kas naujo „JavaScript“ kalboje 2017 m

ES8 veikia! Šią vasarą išleista ES8 (dar vadinama ES2017) siūlo naujus kodavimo naudojant „JavaScript“ būdus. Panagrinėkime juos.

Jei turite naujausią „Chrome“ versiją, atidarykite konsolę ir kartu koduokime.

Object.values ​​()

Pasiekite visas mūsų objekto vertes be jokių komplikacijų. Štai pavyzdys:

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

Pasukite objekto atributą į daugybę atributų:

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']]

Styginių paminkštinimas (padStart ir padEnd)

Tai grąžina perduotą eilutę, pridedant trinkelę ir jos pradžią arba pabaigą. Funkcijos apibrėžimas yra:

'string'.padStart(targetLength, padString)
'string'.padEnd(targetLength, padString)

Mes galime pagaminti:

'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 ()

Jis grąžina visus nuosavus (nepaveldėtus) objekto nuosavybės aprašus. Grąžinimo objekto atributai gali būti: value, writable, get, set, configurableir 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// }// }

Vienas iš praktinių pavyzdžių: „JavaScript“ turi ypatybių kopijavimo metodą Object.assign(). Tai nukopijuoja turtą, kurio raktas yra key. Kaip šitas:

const value = source[key]; // gettarget[key] = value; // set

Kai kuriais atvejais nepavyksta, nes tinkamai nekopijuojamos ypatybės su nenumatytais atributais, tokiais kaip getters, seters ir nerašytinos ypatybės.

Pavyzdžiui:

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'

Sprendimas:

const objTarget = {};const objSource = { set greet(name) { console.log('hey, ' + name); }};Object.defineProperties(objTarget, Object.getOwnPropertyDescriptors(objSource));
objTarget.greet = 'love'; // prints 'hey, love'

Kableliai pridedami funkcijų parametrų sąrašuose ir iškvietimuose

Tai yra sintaksės pakeitimas. Tai leidžia mums parašyti galiojančią funkcijos deklaraciją su kableliu.

getDescription(name, age,) { ... }

Async funkcijos (asinchroninis ir laukimas)

Tai leidžia daug lengviau dirbti su asinchroninėmis funkcijomis:

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)

Bendra atmintis ir atomika

Pagal specifikaciją:

"Bendra atmintis yra atskleista kaip naujo tipo" SharedArrayBuffer "forma. Naujas pasaulinis" Atomics "objektas teikia atomines operacijas bendrosios atminties vietose, įskaitant operacijas, kurios gali būti naudojamos blokuojančių sinchronizavimo primityvų kūrimui."

Tai reiškia:

Bendra atmintis: galime leisti kelioms gijoms skaityti ir rašyti tuos pačius duomenis su naujuoju SharedArrayBufferkonstruktoriumi.

Atomika: Mes galime naudoti Atomicsobjektą norėdami įsitikinti, kad nieko, kas rašoma ar skaitoma, nebus pertraukta proceso viduryje. Taigi operacijos yra baigtos prieš pradedant kitą.

Jei jums patiko šis straipsnis, įsitikinkite, kad jis man patiko daug kartų - rašytojui tai reiškia pasaulį? Sekite paskui mane, jei norite perskaityti daugiau straipsnių apie kultūrą, technologijas ir startuolius.

Flávio H. de Freitas yra verslininkas, inžinierius, technologijų mylėtojas, svajotojas ir keliautojas. Dirbo CTO į Braziliją , Silicio slėnyje ir Europoje .