Кодирование — это бесконечная история. Кажется, что веб-разработка — это бесконечная задача! Оно растет как дерево, каждый день новый корень, новая ветвь, новый лист, новый… продолжает расти во всех направлениях, а не только взбираться вверх. Пока корень остается в земле, нужно постоянно следить за постоянными изменениями корня, следя за изменениями в ветвях и листьях. Постоянное обучение — единственный способ увидеть изменения и быть в состоянии адаптироваться к ним.

Если условие продолжения цикла ложно, выполнение прекращается. Цикл do…while немного отличается в том смысле, что он выполняет инструкции внутри своего тела один или несколько раз. … Увеличение/уменьшение управляющей переменной, которая изменяется каждый раз, когда происходит итерация цикла.

Можете ли вы описать основную разницу между циклом forEach и циклом .map() и почему вы должны выбрать один, а не другой?

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

для каждого

  • Перебирает элементы в массиве.
  • Выполняет обратный вызов для каждого элемента.
  • Не возвращает значение.

const а = [1, 2, 3];

const удвоился = a.forEach((число, индекс) => {

// Сделайте что-нибудь с числом и/или индексом.

});

// удвоено = не определено

карта

  • Перебирает элементы в массиве.
  • «Сопоставляет» каждый элемент с новым элементом, вызывая функцию для каждого элемента, создавая в результате новый массив.

const а = [1, 2, 3];

const удвоился = a.map(num => {

вернуть число * 2;

});

// удвоение = [2, 4, 6]

Основное различие между .forEach и .map() заключается в том, что .map() возвращает новый массив. Если вам нужен результат, но вы не хотите изменять исходный массив, .map() — это очевидный выбор. Если вам просто нужно выполнить итерацию по массиву, forEach — прекрасный выбор.

использованная литература

Опишите всплытие событий.

Как определяется функция высшего порядка?

Функция высшего порядка — это любая функция, которая принимает одну или несколько функций в качестве аргументов, которые она использует для работы с некоторыми данными и/или в результате возвращает функцию. Функции высшего порядка предназначены для абстрагирования некоторой повторяющейся операции. Классический пример — карта, которая принимает в качестве аргументов массив и функцию. Затем карта использует эту функцию для преобразования каждого элемента в массиве, возвращая новый массив с преобразованными данными. Другими популярными примерами в JavaScript являются forEach, filter и reduce. Функция более высокого порядка не должна просто манипулировать массивами, так как существует множество вариантов использования для возврата функции из другой функции. Function.prototype.bind — один из таких примеров в JavaScript.

карта

Допустим, у нас есть массив имен, которые нам нужны, чтобы преобразовать каждую строку в верхний регистр.

const name = ['ирландка', 'маргаритка', 'анна'];

Императивный способ будет таким:

const transformNamesToUppercase = функция (имена) {

константные результаты = [];

for (пусть я = 0; я ‹ имена. длина; я ++) {

results.push(имена[i].toUpperCase());

}

возвращать результаты;

};

transformNamesToUppercase (имена); // ['ИРЛАНДСКОЕ', 'ДЕЙЗИ', 'АННА']

Использование .map(transformerFn) делает код короче и более декларативным.

const transformNamesToUppercase = функция (имена) {

вернуть имена.карта(имя => name.toUpperCase());

};

transformNamesToUppercase (имена); // ['ИРЛАНДСКОЕ', 'ДЕЙЗИ', 'АННА']

использованная литература

Шаблонные литералы ES6 предлагают большую гибкость в создании строк, можете ли вы привести пример?

Литералы шаблонов упрощают интерполяцию строк или включение переменных в строку. До ES2015 было принято делать что-то вроде этого:

var person = {имя: ‘Тайлер’, возраст: 28};

console.log('Привет, меня зовут ‘ + person.name + ‘ и мне ‘ + person.age + ‘ лет!’);

// «Привет, меня зовут Тайлер, мне 28 лет!»

С литералами шаблонов теперь вы можете создать такой же вывод, как здесь:

const person = {имя: ‘Тайлер’, возраст: 28};

console.log(`Привет, меня зовут ${person.name}, мне ${person.age} лет!`);

// «Привет, меня зовут Тайлер, мне 28 лет!»

Обратите внимание, что вы используете обратные кавычки, а не кавычки, чтобы указать, что вы используете литерал шаблона и что вы можете вставлять выражения внутри заполнителей ${}.

Второй полезный вариант использования — создание многострочных строк. До ES2015 вы могли создать многострочную строку следующим образом:

console.log('Это первая строка.\nЭто вторая строка.');

// Это первая строка.

// Это вторая строка.

Или, если вы хотите разбить его на несколько строк в своем коде, чтобы вам не нужно было прокручивать вправо в текстовом редакторе, чтобы прочитать длинную строку, вы также можете написать это так:

console.log('Это первая строка.\n' +

«Это вторая строка».);

// Это первая строка.

// Это вторая строка.

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

console.log(`Это первая строка.

Это вторая строка.`);

// Это первая строка.

// Это вторая строка.

Другим вариантом использования литералов шаблонов может быть использование в качестве замены библиотек шаблонов для простой интерполяции переменных:

const person = {имя: ‘Тайлер’, возраст: 28};

документ.body.innerHTML = `

‹див›

‹p›Имя: ${person.name}‹/p›

‹p›Имя: ${person.age}‹/p›

‹/дел›

`

Обратите внимание, что ваш код может быть восприимчив к XSS при использовании .innerHTML. Дезинфицируйте свои данные перед их отображением, если они поступили от пользователя!

использованная литература

Что такое ассоциативный массив в JavaScript?

Ассоциативный массив в JavaScript. Ассоциативные массивы — это динамические объекты, которые пользователь переопределяет по мере необходимости. Когда вы присваиваете значения ключам в переменной типа Array, массив преобразуется в объект, и он теряет атрибуты и методы Array.

Что такое массив?

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

Почему никогда не используйте новый массив в JavaScript?

Поскольку он медленнее — он должен вызывать конструктор массива. Буквенная запись массива быстрее и легче читается.

Фариба

Академия кодирования Остина