ЕС8: Шта је ново у језику ЈаваСцрипт у 2017. години

ЕС8 уживо! Објављен раније овог лета, ЕС8 (такође назван ЕС2017) нуди нове начине кодирања помоћу ЈаваСцрипт-а. Истражимо их.

Ако имате најновију верзију Цхроме-а, отворите конзолу и кодирајмо заједно.

Објецт.валуес ()

Приступите свим вредностима нашег објекта без икаквих компликација. Ево примера:

const countries = { BR: 'Brazil', DE: 'Germany', RO: 'Romania', US: 'United States of America'};
Object.values(countries); // ['Brazil', 'Germany', 'Romania', 'United States of America']

Објецт.ентриес

Претворите свој атрибут објекта у низ атрибута:

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

Подложавање низа (падСтарт и падЕнд)

Ово враћа прослеђени низ додајући блок и почетак или крај њега. Дефиниција функције је:

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

Можемо направити:

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

Објецт.гетОвнПропертиДесцрипторс ()

Враћа све сопствене (ненаслеђене) дескрипторе својства објекта. Атрибуте објекта повратка може бити: value, writable, get, set, configurableи 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// }// }

Један практичан пример је: ЈаваСцрипт има метод за копирање својстава Object.assign(). Копира својство чији је кључ key. Овако:

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

А у неким случајевима не успева јер не копира правилно својства са не-подразумеваним атрибутима као што су гетери, постављачи и својства која се не могу писати.

На пример:

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'

Решавање:

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

Пратеће зарезе у листама параметара функције и позивима

Ово је промена синтаксе. Омогућава нам да на крају напишемо важећу декларацију функције са зарезом.

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

Асинц функције (асинц и аваит)

Ово чини много лакши рад са асинхроним функцијама:

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)

Заједничка меморија и атомика

Према спецификацији:

„Заједничка меморија је изложена у облику новог типа СхаредАрраиБуффер; нови глобални објекат Атомицс пружа атомске операције на локацијама дељене меморије, укључујући операције које се могу користити за стварање примитива блокирања синхронизације.“

Ово значи:

Заједничка меморија: можемо дозволити да више нити чита и записује исте податке помоћу новог SharedArrayBufferконструктора.

Атомицс: Помоћу Atomicsобјекта можемо осигурати да ништа што се записује или чита буде прекинуто усред процеса. Дакле, операције су готове пре него што започне следећа.

Ако сте уживали у овом чланку, будите сигурни да ће вам се свидети и да ми пљешће много - писцу значи свет Пратите ме ако желите да прочитате још чланака о култури, технологији и стартуповима.

Флавио Х. де Фреитас је предузетник, инжењер, љубитељ технике, сањар и путник. Радио је као технички директор у Бразилу , Силицијумској долини и Европи .