Lansat la inceputul acestei veri, ES8 (numit si ES2017) ofera noi modalitati de codare cu JavaScript. Sa le exploram.

Daca aveti cea mai recenta versiune Chrome, deschideti consola si hai s-a codificam impreuna.

Object.values() Accesati toate valorile obiectului nostru fara nici o complicatie. Iata un exemplu:

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 Transformati atributul obiect intr-o serie de atribute:
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 padding (padStart and padEnd) Aceasta returneaza sirul adaugat adaugand tamponul si inceputul sau sfarsitul acestuia. Definitia functiei este:
'string'.padStart(targetLength, padString)
'string'.padEnd(targetLength, padString)
Putem face:
'0.10'.padStart(10); // length 10
'hi'.padStart(1);            // 'hi'
'hi'.padStart(5);            // '   hi'
'hi'.padStart(5, 'abcd');    // 'abchi'
'hi'.padStart(10, 'abcd');   // 'abcdabcdhi'
'loading'.padEnd(10, '.');   // 'loading...'

'0.10'.padStart(12); // ' 0.10' '23.10'.padStart(12); // ' 23.10' '12,330.10'.padStart(12); // ' 12,330.10'

Object.getOwnPropertyDescriptors() Returneaza toti proprii descriptori de proprietate (ne-mosteniti) ai unui obiect. Atributele obiectului de returnare pot fi: valoare, scriere, obtinere, setare, configurabilitate si enumerare.(value, writable, get, set, configurable and 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
//  }
// }
Un exemplu practic este: JavaScript are o metoda de copiere a proprietatilor Object.assign (). Copiaza proprietatea a carei cheie este cheia. Asa:
const value = source[key]; // get
target[key] = value;       // set
In unele cazuri, acesta nu reuseste deoarece nu copiaza corect proprietatile cu atribute care nu sunt implicite, cum ar fi getters, setters si proprietati care nu pot fi inscriptionate. De exemplu:
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'
Rezolvarea:
const objTarget = {};
const objSource = {
    set greet(name) { console.log('hey, ' + name); }
};
Object.defineProperties(objTarget,          
           Object.getOwnPropertyDescriptors(objSource));
objTarget.greet = 'love'; // prints 'hey, love'
 

Comenzi in listele de parametri de functii si in apeluri Aceasta este o schimbare de sintaxa. Aceasta ne permite sa scriem o declaratie de functionare valida cu virgula in final.

getDescription(name, age,) { ... }
Async functii (async si await) Acest lucru face mult mai usor sa lucrati cu functii asincrone:
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)
Shared memory si atomics Memorie partajata: putem permite ca fire multiple sa citeasca si sa scrie aceleasi date cu noul constructor SharedArrayBuffer. Atomica: Putem folosi obiectul Atomics pentru a ne asigura ca nimic din ceea ce este scris sau citit nu v-a fi intrerupt in mijlocul procesului.

  • Care este reactia ta?
  • powered by Verysign
  • like Timenews
    Like
  • unmoved Timenews
    unmoved
  • amused Timenews
    amused
  • excited Timenews
    excited
  • angry Timenews
    angry
  • sad Timenews
    sad
TENDINTA  |  PCLinuxOS LXQt 2019.02
FlorinM                   Timenews
FlorinM
Utilizator Linux - Solus OS, pasionat de calatorii.
1160 articole



  • Comenteaza
  • powered by Verysign

Nici un comentariu inca. Fii primul!
Gabriel Ruta - Facebook
Gabriel Ruta - Facebook

MX Linux. Il folosesc deja de un an jumate, si pot spune ca pt. mine personal este No.1 Distro din cate zeci am testat in anii trecuti. L-am folosi...9 days, 21 hours

MX Linux 18.1 - improspatare ISO MX Linux 18.1 - improspatare ISO >>>
Stefan
Stefan

Salut,

Ati gresit imaginea ISO, re-downloadati imaginea 1.5.2 daca tot aceea ati scos-o, si aveti grija ce downloadati data viitoare

Re...14 days, 17 hours

Moderator
Moderator
Remediat. Multumim.
Redcore.Linux.Hardened.1812.KDE vs Argent.Workstation.1.5.2.KDE Redcore.Linux.Hardened.1812.KDE vs Argent.Workstation.1.5.2.KDE >>>
Victor
Victor

Interesant ... Îmi place ideea! 
Dar oricine vede inspiratia pe care Casper a luat-o de la lampa Philips Hue, precum si unele dintr...22 days, 4 hours

Casper Glow - lumina de noapte, ce va va ajuta sa adormiti Casper Glow - lumina de noapte, ce va va ajuta sa adormiti >>>
Alex Petrini - Facebook
Alex Petrini - Facebook

da, dar e coporate mai mult. Eu folosesc Rambox si îti poti defini orice serviciu singur. 

1 month, 2 days
Station in Linux - 600 de aplicatii intr-o singura interfata eleganta Station in Linux - 600 de aplicatii intr-o singura interfata eleganta >>>