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