Назначение свойства объекта

С новым и улучшенным усовершенствованием перечисляемые свойства из исходных объектов, одно или несколько; могут быть легко скопированы в целевой объект. Возможно, вы использовали служебные методы, такие как JQuery $.clone и _.cloneDeep от loadash, для выполнения этого действия. Был также ванильный подход JS — циклически перебирать ключи с помощью Object.keys(src1) и для каждого ключа присваивать его значение целевому объекту.

Object.keys(источник).forEach(функция(ключ) {назначение[ключ] = источник[ключ]; });

Введите ES6 — используйте Object.assign(dest, sourceA, sourceB)

Чоп, Чоп, вот и все!

Поиск массива

Array.prototype.indexOf() не предлагает обратный вызов для определения условий. Кроме того, чтобы использовать его, вам нужно уже знать значение. Это плохо масштабируется и приводит к тому, что разработчики перебирают весь массив, чтобы найти значение, а затем выводят индекс значения. С ES6 массивы дополнены двумя новыми методами — find и findIndex. Они принимают обратный вызов и возвращают первое совпавшее значение.

пусть затраты = [20, 34, 10, 5];

пусть costlyItem = cost.find(cost =› cost › 20); // 34

пусть costlyItemIndex = cost.findIndex(cost =› cost › 20); // 1

Строковый поиск

String.prototype.indexOf › -1 , regex и str.search(regexp) до сих пор использовались для поиска строк. Введите «включает», теперь вы можете использовать —

"javascript".startsWith("script", 4) //правда

"javascript".endsWith("java", 4) //правда

«javascript».includes («java») // правда

"javascript".includes("script", 5) //false

Метапрограммирование с прокси и отражением

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

Прокси

Прокси-объект позволяет перехватывать общие операции для создания пользовательских обработчиков. Чтобы создать экземпляр прокси, инициализируйте конструктор прокси с двумя параметрами; целевой объект и объект-обработчик. Целевой объект — это объект, над которым вы хотите перехватывать операции, а объект-обработчик — это обычный старый объект с методами, известными как ловушки. Ловушки — можно сказать, я не бодибилдер, или я не эксперт по ловушкам операционной системы. И это нормально. Ловушки в обработчиках прокси — это методы — get, set, has, enumerate и еще. Они предназначены для таких случаев использования, как контроль доступа, проверка и инкапсуляция.

Отражать

Вы должны были заметить «Reflect» в приведенном выше примере; и вы правильно догадались — Reflect использовался как альтернативный подход к обходу и поиску реквизита в obj. Так что же такое Reflect? Reflect — это объект, который помогает перенаправлять операции по умолчанию от своего обработчика к цели. Но не лучше ли просто использовать ob.prop? Да, это. Но реальная сила использования Reflect начинает проявляться, когда вы используете другие ловушки, которые требуют большого количества кода для воспроизведения функциональности. И плюс, его можно использовать как общий интерфейс для всех операций.

Основываясь на новых дополнениях, ясно, что TC39 вводит функции, которые гарантируют долговечность языка. Я в восторге от 7-й и 8-й версии JavaScript. А ты?

Первоначально опубликовано на javascriptstore.com 21 сентября 2017 г.