Кодирование — это бесконечная история. Кажется, что веб-разработка — это бесконечная задача! Оно растет как дерево, каждый день новый корень, новая ветвь, новый лист, новый… продолжает расти во всех направлениях, а не только взбираться вверх. Пока корень остается в земле, нужно постоянно следить за постоянными изменениями корня, следя за изменениями в ветвях и листьях. Постоянное обучение — единственный способ увидеть изменения и быть в состоянии адаптироваться к ним.
Если условие продолжения цикла ложно, выполнение прекращается. Цикл 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 (имена); // ['ИРЛАНДСКОЕ', 'ДЕЙЗИ', 'АННА']
использованная литература
- https://medium.com/javascript-scene/higher-order-functions-composing-software-5365cf2cbe99
- https://hackernoon.com/efficient-functional-javascript-first-class-and-higher-order-functions-713fde8df50a
- https://eloquentjavascript.net/05_higher_order.html
Шаблонные литералы 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?
Поскольку он медленнее — он должен вызывать конструктор массива. Буквенная запись массива быстрее и легче читается.
Фариба
Академия кодирования Остина