Вау… еще раз привет. В этом посте мне есть что рассказать. Все о JavaScript, и в эти дни я снова знакомлюсь с языком. Я узнал новые вещи и повторил то, что уже видел, поэтому я продолжу объяснять их.

Я узнал о сокращении свойств объекта, которое состоит из синтаксиса, позволяющего избежать написания имени свойства и значения последнего, когда оба называются одинаково. Вот пример:
Вместо записи:
const getPosition(x,y) => ({
x:x,
y:y
});
`
можно упростить до:
const getPosition(x, y) => ({x, y});`

Краткие декларативные функции. Этот тип функций позволяет нам опускать слово «функция» при объявлении функции внутри объекта. Этот пример на GitHub весьма показателен:

До ES6 нам приходилось использовать ключевое слово «функция»:

const person = {
      name: "John",
      sayHello: function() {
        return `Hello! I am ${this.name}.`;
      }
    };

Теперь мы можем немного упростить это:

const person = {
      name: "John",
      sayHello() {
        return `Hello! I am ${this.name}.`;
      }
    };`

Это не большая разница, но она делает код чище и читабельнее. Вот оригинальный пример:



Это свойство с функцией в качестве значения называется методом объекта.

Функции конструктора с синтаксисом «класса» для создания объектов: в данном случае это ключевое слово представляет только синтаксис. Это изменяет способ создания функции-конструктора. Вот пример:

Раньше нам приходилось делать что-то подобное при создании объектов:

var fruits = function(fruit){
this.fruit = fruit;}
//we create a new object with:
var banana = new fruit("banana");
`

Теперь мы можем сделать это вместо этого:

class fruits {
constructor(fruit){
this.fruit = fruit;
}
};
//and we initialize with:
const banana = new fruit("banana");
`

Важно отметить, что «класс» объявляет новую функцию и добавляет конструктор. Я также подчеркиваю новый оператор, который позволяет нам создать новый экземпляр функции-конструктора.

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

Что касается массивов, я сосредоточился на различных методах, применимых к ним. Основными были:

  • .filter(): как следует из названия, фильтрует элементы массива в соответствии с заданным условием и возвращает подмножество исходного массива на основе пользовательских критериев. Он создает новый массив, в котором хранятся результаты. Например, у нас есть следующий массив:
    const words = [bread, pineapple, villager, smartphone, seven];`
    Если применить .filter:
    const result = words.filter(word => word.length > 7);
    console.log(result);
    `
    В консоли получим:
    [pineapple, villager, smartphone]`
  • .map(): также создает новый массив, только этот метод вызывает функцию для каждого элемента исходного массива и сохраняет его в новом массиве. Он не выполняет функцию для нулевых элементов и не изменяет исходный массив. Например, имеем:
    const numbers = [2, 4, 6, 8]`
    применим .map():
    const doubles = numbers.map(function(num){
    return num*2})
    `
    получаем:
    doubles = [4, 8, 12, 16]`
    И исходный массив остается такой же.
  • .find(): создает новый массив. Этот метод проверяет наличие элементов в массиве. Он возвращает значение первого элемента, прошедшего проверку. Это означает, что после появления первого значения остальные элементы не проверяются. Вот пример:
    const numbers = [2, 4, 6, 8];
    const result = numbers.find(number < 7);
    console.log(result)
    Будет возвращено: 2, так как остальные значения не оцениваются.
  • .forEach(): аналогичен .map(), только этот метод не создает новый массив. Он выполняет только набор функций для каждого элемента массива.

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

Приветствую и оставайтесь последовательными!