Рубрики
Без рубрики

ES8: Что нового на языке JavaScript в 2017 году

Flavio H. Freitas ES8: Что нового на языке JavaScript в 2017 году, что новый? ES8 живет! Выпущены ранее этим летом, ES8 (также называемым ES2017) предлагает новые способы кодирования с JavaScript. Давайте рассмотрим их. Если у вас есть последняя версия Chrome, откройте консоль и давайте код

Автор оригинала: FreeCodeCamp Community Member.

Flavio H. Freitas

ES8 живет! Выпущены ранее этим летом, ES8 (также называемым ES2017) предлагает новые способы кодирования с JavaScript. Давайте рассмотрим их.

Если у вас есть последняя версия Chrome, откройте консоль и давайте вместе.

Object.values ()

Доступ к всем значениям нашего объекта без каких-либо осложнений. Вот пример:

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.

Поверните свой объект атрибут в массив атрибутов:

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

Струнные прокладки (Padstart and padend)

Это возвращает пропущенную строку, добавляющую подушку и начало или в конце его. Определение функции:

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

Object.GetownPropertyDescriptors ()

Он возвращает все собственные (не наследуемые) дескрипторы свойств объекта. Атрибуты возврата объекта могут быть: ценность , Пирена , получить С установленный , настраиваемый и перечислимый Отказ

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//  }// }

Один практический пример: JavaScript имеет метод для копирования свойств Объект.assign () Отказ Это копирует свойство, ключ которой является ключ Отказ Нравится:

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

И в некоторых случаях это не удается, потому что он не копирует свойства с атрибутами Non-default, таких как Getter, Devices и неисполнительные свойства.

Например:

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,) { ... }

Async-функции (Async и a ждать)

Это делает намного проще работать с асинхронными функциями:

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: мы можем использовать Atomics Объект, чтобы убедиться, что ничего не написано или читают, будут прерваны в середине процесса. Таким образом, операции заканчиваются до начала следующего.

Если вам понравилось эту статью, обязательно понравится мне много хлопов – это означает мир писателю? И е Оллау меня Если вы хотите прочитать больше статей о культуре, технологиях и стартапах.

Flávio H. de Freitas Это предприниматель, инженер, технический любовник, мечтатель и путешественник. Работал как CТО в Бразилия , Силиконовая долина и Европа Отказ

Оригинал: “https://www.freecodecamp.org/news/es8-the-new-features-of-javascript-7506210a1a22/”