DevGang
Авторизоваться

Скрытые жемчужины: малоизвестные возможности JavaScript

JavaScript, несомненно, является одним из самых мощных и широко используемых языков программирования в мире. Большинство разработчиков знакомы с основными функциями, но существует множество скрытых жемчужин, которые часто остаются незамеченными. В этой статье мы рассмотрим некоторые из этих редко используемых функций и то, как они могут сделать процесс разработки более эффективным и элегантным.

Object.getOwnPropertyDescriptors

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

const source = { name: 'Alice', age: 30 };
const descriptors = Object.getOwnPropertyDescriptors(source);

const target = Object.create(null);
for (const key in descriptors) {
  Object.defineProperty(target, key, descriptors[key]);
}

console.log(target); // { name: 'Alice', age: 30 }

Array.from с функцией сопоставления

Функция Array.from часто используется для создания массивов из итерируемых объектов. Но знаете ли вы, что вы также можете передать функцию сопоставления?

const numbers = [1, 2, 3, 4];
const squared = Array.from(numbers, num => num * num);

console.log(squared); // [1, 4, 9, 16]

String.prototype.trimStart и String.prototype.trimEnd

Удаление начальных или конечных пробелов из строки — распространенная задача. С функциями trimStart и trimEnd это становится проще простого.

const text = '   Hello, World!   ';
const trimmed = text.trimStart().trimEnd();

console.log(trimmed); // 'Hello, World!'

Intl.Collator для естественной сортировки строк

Функция Intl.Collator обеспечивает правильную естественную сортировку строк для разных языков и культур.

const words = ['äpfel', 'Zebra', 'Bär', 'Apfel', 'über'];
const collator = new Intl.Collator('de');

const sorted = words.sort(collator.compare);
console.log(sorted); // ['Apfel', 'äpfel', 'Bär', 'über', 'Zebra']

Promise.allSettled

В то время как Promise.all прерывается при ошибке, Promise.allSettled возвращает результаты для всех переданных обещаний, независимо от того, были ли они выполнены или отклонены.

const promises = [
  Promise.resolve('Success'),
  Promise.reject('Error'),
  Promise.resolve('Another success')
];

Promise.allSettled(promises)
  .then(results => console.log(results))
  .catch(error => console.error(error));

Заключение

Эти малоизвестные функции JavaScript подобны скрытым сокровищам, которые могут упростить ваши задачи разработки и сделать ваш код более элегантным. Включив эти функции в свои проекты, вы можете повысить свою эффективность, сделав код более читабельным и удобным в поддержке. Изучите эти функции и используйте их с умом, чтобы раскрыть весь потенциал JavaScript!

Источник:

#JavaScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться