Автор оригинала: 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/”