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

Особенности JavaScript ES6, которые необходимо знать перед изучением React

Если вы хотите научиться реагировать, само собой разумеется, что вам следует разобраться в основах Javascript.

React также использует многие концепции ES6, с которыми вы уже должны быть знакомы. В этом руководстве мы рассмотрим наиболее часто используемые функции ES6, которые вам следует знать перед изучением React. Изучение и понимание того, как использовать эти концепции, сделают ваше путешествие по React увлекательным и гладким.

Литералы шаблонов

ES6 упростил работу со строками. Вместо объединения строк со знаком плюс (+) строки шаблона предоставляют более простой способ.

// old way of joining strings
function sumNumbers(a, b) {
  return "The sum of " + a + " and " + b + " is " + (a + b);
}
// using template literals
function sumNumbers(a, b) {
  return `The sum of ${a}  and ${b} is ${a + b}`;
}

Литералы шаблонов также упрощают работу с несколькими строками.

const multiLineString = `
  Lorem ipsum dolor sit amet,
  consectetur adipiscing elit.
  Sed do eiusmod tempor incididunt
  ut labore et dolore magna aliqua.
`;

Стрелочные функции

Стрелочные функции делают ваш код более кратким. Давайте посмотрим на различия между нормальной функцией и стрелочной функцией.

// Normal function
function myFunction() {
  // Expression or statement
}
// Arrow function
const myArrowFunction = () => {
  // Expression or statement
};

При использовании стрелочной функции вместо ключевого слова function вы используете жирную стрелку (=>), что делает ее более краткой.

Если стрелочная функция возвращает одно выражение, вы можете зафиксировать фигурные скобки и ключевое слово return.

Если стрелочная функция принимает один аргумент, вы можете заключить двойной паратез вокруг параметра.

// explicit return  single expression
const add = (a,b) => a + b;

// ommit parantesis if single argument
const squared = a => a * a;

Стрелочная функция обычно используется в методах массивов, таких как map(), filter(), forEach() и т. д.

const names = ["Carol", "jane", "alice"];
const capitalizedNames = names.map((name) => name.toUpperCase());
console.log(capitalizedNames);

//output  // [ 'CAROL', 'JANE', 'ALICE' ]

Как вы можете видеть выше, поскольку мы передаем только один аргумент, мы зафиксировали круглые скобки.

Деструктуризация объектов

Деструктуризация в JavaScript — это процесс распаковки значений из массивов или свойств объектов в отдельные переменные. Это полезно при работе со сложными структурами данных, например данными из баз данных или API.

Например, предположим, что у вас есть простой объект, описывающий кошку.

const cat = {
  catName: 'Whiskers',
  age: 3,
  color: 'gray',
  breed: 'Persian'
};

Чтобы получить имя кошки, вы обычно используете запись через точку или скобки, например:

const cat = {
  catName: "Whiskers",
  age: 3,
  color: "gray",
  breed: "Persian",
};

// console.log(cat.catNname)

Однако с помощью деструктуризации объекта вы можете распаковать свойства в имена переменных и присвоить их объекту cat следующим образом:

const { catNname, age, color, breed } = cat;
console.log(`My cat ${catNname} is ${age} moths old`)

Результат будет

My cat Whiskers is 3 months old

Деструктуризация массивов

Деструктуризация массивов аналогична деструктуризации объектов. Предположим, у нас есть массив сотрудников:

const employees = [
    'Carol kristen deck ',
    'john weber Smith',
    'Alice k Johnson'
  ];

Если бы мы хотели получить сотрудника по индексу 1, мы бы сделали это:

employees[1]

Но с помощью деструктуризации мы можем распаковать значения в переменные следующим образом:

const employees = [
  "Carol kristen deck ",
  "john weber Smith",
  "Alice k Johnson",
];

const [E1,E2,E3 ] = employees;

E1 будет значением первого сотрудника массива, E2 — значение второго сотрудника и так далее; если вам нужны только первые сотрудники массива, вы можете зафиксировать остальных следующим образом:

const [E1, ,] = employees;
console.log(E1); 
// Carol kristen deck

Литералы объектов

Литералы объектов позволяют разработчикам избегать дублирования при написании объектов. Например, предположим, что у нас есть конструктор функции Task, который выглядит следующим образом:

function Task(title, description, priority) {
    return {
      title: title,
      description: description,
      priority: priority
    };
}

С помощью объектных литералов ES6 вы можете написать сокращенную версию следующим образом;

function Task(title, description, priority) {
  return {
    title,
    description,
    priority,
  };
}

Оператор распространения

Оператор распространения используется для распространения элементов итерируемых объектов. Итерируемые объекты включают массивы, объекты и строки.

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

const names = ["Alice", "Bob", "Charlie", "Diana", "Ethan"];
const namesCopy = [...names]
console.log(namesCopy)

Rest оператор

Оператор rest аналогичен оператору спреда в том, что он использует три (…) точки. Однако оператор rest используется в параметрах функции для сбора нескольких аргументов в один массив.

Например, предположим, что нам нужно создать функцию, которая получает сумму чисел. Предполагая, что наш массив принимает неопределенное количество аргументов, мы можем использовать оператор rest для сбора аргументов в массив.

function sumNumbers(...arr) {
  let sum = 0;
  for (let i = 0; i < arr.length; i++) {
    sum += arr[i];
  }
  return sum;
}

Затем мы можем использовать функцию для обработки любого количества аргументов.

numbers = [1, 2, 4];
grades = [30, 40, 50, 60, 70];
console.log(sumNumbers(...numbers)); //output //7
console.log(sumNumbers(...grades));   //output //250

Оператор rest также можно использовать в назначениях реструктуризации. Например, предположим, что нам нужно извлечь первый элемент массива оценок, мы можем извлечь его в переменную, а затем собрать остальные элементы в массив, как показано ниже.

grades = [30, 40, 50, 60, 70];
const [index0, ...arr] = grades;
console.log(math);

Цикл For

Цикл for используется для перебора элементов в итерируемых объектах, таких как массивы, строки, типизированные массивы, карты, наборы и списки узлов. Синтаксис цикла for выглядит следующим образом:

for (variable of iterable) {
  //code to be executed for each variable
}

Итерация по массиву

const currencyCodes = ["USD", "EUR", "GBP", "JPY"];
for (const code of currencyCodes) {
  console.log(code);
}
// USD
// EUR
// GBP
// JPY

Перебор массива объектов

Например, предположим, что у нас есть массив, содержащий несколько объектов, как показано ниже.

const currencies = [
    { currency: "US Dollar", code: "USD" },
    { currency: "Euro", code: "EUR" },
    { currency: "British Pound", code: "GBP" },
    { currency: "Japanese Yen", code: "JPY" }
  ];

Если мы перейдем по массиву валют, мы получим каждый отдельный объект.

for (const currency of currencies) {
  console.log(currency);
}

Вывод будет выглядеть следующим образом:

{ currency: 'US Dollar', code: 'USD' }
{ currency: 'Euro', code: 'EUR' }
{ currency: 'British Pound', code: 'GBP' }
{ currency: 'Japanese Yen', code: 'JPY' }

Перебор NodeList

NodeList — это коллекция узлов, извлеченных из документа веб-страницы. Например, предположим, что на нашей странице есть <ul> элементов <li>:

<ul class="languages">
      <li>Python</li>
      <li>JavaScript</li>
      <li>Ruby</li>
    </ul>

Мы можем использовать атрибут querySelectorAll, чтобы получить NodeList, содержащий такие элементы.

const listItems = document.querySelectorAll('.languages li')

Затем используйте концепцию цикла for, чтобы получить textContent каждого элемента.

const listItems = document.querySelectorAll(".languages li");
for (const item of listItems) {
  console.log(item.textContent);
}

Заключение

Какие функции ES6 вы используете почти каждый день? Позвольте мне знать в комментариях ниже.

Спасибо за прочтение

Источник

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

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу