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