JavaScript - ECMAScript 2017: руковод BEGINNERS

Привет, будущие программисты! Я рад быть вашим проводником в увлекательное путешествие в мир ECMAScript 2017. Как кто-то, кто преподавал informatikу более десяти лет, я могу заверить вас, что изучение JavaScript похоже на открытие суперсилы в цифровом веке. Так что давайте окунемся и исследуем потрясающие функции, представленные в ECMAScript 2017!

ECMAScript 2017

Новые функции, добавленные в ECMAScript 2017

ECMAScript 2017, также известный как ES8, принес了一些 революционные функции в JavaScript. Представьте себе, как новый набор инструментов, добавленный в ваш ящик для кодирования. Эти функции делают нашу жизнь разработчиков проще и наш код более эффективным. Давайте рассмотрим их по одному!

Методы String Padding: padStart() и padEnd()

Вы когда-нибудь Needed, чтобы добавить дополнительные символы в начало или конец строки, чтобы сделать ее определенной длины? Ну, ECMAScript 2017 позаботился о вас с методами padStart() и padEnd()!

padStart()

Метод padStart() дополняет текущую строку другой строкой до тех пор, пока результирующая строка не достигнет заданной длины. Заполнение применяется с начала текущей строки.

let str = '5';
console.log(str.padStart(3, '0')); // Вывод: '005'

В этом примере мы дополняем строку '5' нулями, пока она не станет длиной 3 символа. Это как добавление ведущих нулей к числу!

padEnd()

Аналогично, padEnd() дополняет текущую строку с конца.

let price = '99';
console.log(price.padEnd(5, '.00')); // Вывод: '99.00'

Здесь мы добавляем '.00' в конец '99', чтобы сделать его похожим на цену с копейками.

Эти методы超级 удобны, когда вам нужно форматировать строки для отображения или выравнивать текст определенным образом.

Метод Object.entries()

Теперь давайте поговорим о Object.entries(). Этот метод как маг, который превращает объект в массив пар ключ-значение. Он невероятно полезен, когда вам нужно итерироваться по свойствам объекта.

let person = {
name: 'Alice',
age: 30,
city: 'New York'
};

console.log(Object.entries(person));
// Вывод: [['name', 'Alice'], ['age', 30], ['city', 'New York']]

В этом примере Object.entries() преобразует наш объект person в массив, где каждый элемент - это другой массив, содержащий пары ключ-значение. Это как unpacking чемодана и разворачивание всех его содержимого!

Метод Object.values()

Object.values() - это cousin Object.entries(). Вместо того чтобы давать нам пары ключ-значение, он возвращает массив только значений в объекте.

let fruits = {
apple: 5,
banana: 3,
orange: 2
};

console.log(Object.values(fruits)); // Вывод: [5, 3, 2]

Этот метод идеален, когда вам интересны только значения в объекте, а не их ключи. Это как получение списка покупок без цен!

JavaScript async и await

Теперь мы enters в мир асинхронного JavaScript с async и await. Эти ключевые слова делают работу с Promise (способ обработки асинхронных операций) намного проще и читаемее.

async function fetchUserData() {
try {
let response = await fetch('https://api.example.com/user');
let userData = await response.json();
console.log(userData);
} catch (error) {
console.error('Failed to fetch user data:', error);
}
}

fetchUserData();

В этом примере async говорит JavaScript, что эта функция будет работать с асинхронным кодом. Ключевое слово await暂停 выполнения функции до тех пор, пока Promise не будет разрешен. Это как decir JavaScript, "Подожди здесь, пока это задание не будет выполнено, прежде чем переходить к следующему."

Это делает асинхронный код похожим на синхронный, что значительно проще для чтения и понимания!

Метод Object.getOwnPropertyDescriptors()

Этот метод может показаться пугающим, но на самом деле он очень полезен! Он возвращает все собственные дескрипторы свойств данного объекта.

let obj = {
name: 'John',
get age() { return 30; }
};

console.log(Object.getOwnPropertyDescriptors(obj));
/* Вывод:
{
name: {
value: 'John',
writable: true,
enumerable: true,
configurable: true
},
age: {
get: [Function: get age],
set: undefined,
enumerable: true,
configurable: true
}
}
*/

Этот метод особенно полезен, когда вам нужно копировать свойства из одного объекта в другой, включая их дескрипторы (например, геттеры и сеттеры).

JavaScript Shared Memory и Atomics

Lastly, let's touch on Shared Memory and Atomics. These features allow different threads in JavaScript to share the same memory space and perform operations atomically.

// Создание shared буфера
let sharedBuffer = new SharedArrayBuffer(4);
let sharedArray = new Int32Array(sharedBuffer);

// Выполнение атомарных операций
Atomics.store(sharedArray, 0, 42);
console.log(Atomics.load(sharedArray, 0)); // Вывод: 42

Это продвинутая вещь,主要用于 сценариях, где вам нужно высокопроизводительное вычисление в JavaScript. Это как несколько шеф-поваров работают на одной кухне, способных делить ингредиенты, не мешая друг другу!

Резюме новых методов

Вот быстрое справочное руководство по новым методам, которые мы обсуждали:

Метод Описание
String.prototype.padStart() Дополняет начало строки заданной строкой
String.prototype.padEnd() Дополняет конец строки заданной строкой
Object.entries() Возвращает массив собственных enumerable строковых ключевых пар ключ-значение объекта
Object.values() Возвращает массив собственных значений объекта
Object.getOwnPropertyDescriptors() Возвращает все собственные дескрипторы свойств данного объекта
Atomics методы Предоставляет атомарные операции в виде статических методов на объекте Atomics

И вот и все! Мы рассмотрели основные функции, представленные в ECMAScript 2017. Помните, что изучение кодирования - это путешествие, а не пункт назначения. Продолжайте практиковаться, продолжайте исследовать и,最重要的是, получайте удовольствие! Счастливого кодирования!

Credits: Image by storyset