Для чего обычно используются анонимные функции?
Анонимные функции используются при создании IIFE — конструкций, переменные, объявленные в которых, не загрязняют глобальную область видимости.
Анонимные функции используются при создании IIFE — конструкций, переменные, объявленные в которых, не загрязняют глобальную область видимости.
(function() {
// Какой-то код.
})();
Анонимные функции применяют в качестве функций обратного вызова, которые используются лишь в одном месте программы. Код будет выглядеть более самодостаточным и читабельным в том случае, если коллбэк будет объявлен прямо в том месте, где он используется. Это избавляет от необходимости просматривать код в поиске тела функции. setTimeout(function() {
console.log('Hello world!');
}, 1000);
Анонимные функции удобно использовать в конструкциях, характерных для функционального стиля программирования, или при работе с библиотеками вроде Lodash (этот вариант их использования похож на их применение в качестве коллбэков). const arr = [1, 2, 3];
const double = arr.map(function(el) {
return el * 2;
});
console.log(double); // [2, 4, 6]Чему равен margin-top элемента div с классом in?
Anonymous Quiz
34%
100px
44%
12.5px
14%
50px
8%
75px
В чём разница между методом Object.freeze() и ключевым словом const?
Ключевое слово const и метод Object.freeze() — это совершенно разные вещи.
Ключевое слово const применяется к привязкам (к «переменным»). Оно создаёт иммутабельную привязку, то есть — к переменной (константе), объявленной с помощью const, нельзя привязать что-то новое. Константе нельзя присвоить новое значение.
Ключевое слово const и метод Object.freeze() — это совершенно разные вещи.
Ключевое слово const применяется к привязкам (к «переменным»). Оно создаёт иммутабельную привязку, то есть — к переменной (константе), объявленной с помощью const, нельзя привязать что-то новое. Константе нельзя присвоить новое значение.
const person = {
name: "Leonardo"
};
let animal = {
species: "snake"
};
person = animal; // Uncaught TypeError: Assignment to constant variable.
Метод Object.freeze() работает со значениями. А точнее — с объектными значениями. Он делает объект иммутабельным, что защищает от изменений значения свойств этого объекта. let person = {
name: "Leonardo"
};
Object.freeze(person);
person.name = "Lima"; // Uncaught TypeError: Cannot assign to read only property 'name' of object
console.log(person);
Обратите внимание на то, что сообщение об ошибке выводится в строгом режиме. В обычном режиме операция просто не срабКошачьи и собачьи года
У меня есть кошка и собака. Они родились humanYears тому назад. Напишите функцию, которая сконвертирует humanYears в catYears и dogYears.
Правила конвертации:
Cat Years:
15 cat years в первый год
+9 cat years во второй год
+4 cat years в каждый последующий год
Dog Years
15 dog years в первый год
+9 dog years во второй год
+5 dog years в каждый последующий год
👉 @frontendInterview
У меня есть кошка и собака. Они родились humanYears тому назад. Напишите функцию, которая сконвертирует humanYears в catYears и dogYears.
Правила конвертации:
Cat Years:
15 cat years в первый год
+9 cat years во второй год
+4 cat years в каждый последующий год
Dog Years
15 dog years в первый год
+9 dog years во второй год
+5 dog years в каждый последующий год
👉 @frontendInterview
Что такое «поднятие переменных»?
Сущность концепции «поднятия переменных» заключается в том, что объявления «поднимаются» в верхнюю часть текущей области видимости. В результате переменной можно воспользоваться до её объявления. Поднимаются лишь объявления переменных, но не код их инициализации. Обратите внимание на то, что поведение переменных, объявляемых с использованием ключевого слова var, отличается от поведения переменных и констант, объявленных с использованием let и const.
👉 @frontendInterview
Сущность концепции «поднятия переменных» заключается в том, что объявления «поднимаются» в верхнюю часть текущей области видимости. В результате переменной можно воспользоваться до её объявления. Поднимаются лишь объявления переменных, но не код их инициализации. Обратите внимание на то, что поведение переменных, объявляемых с использованием ключевого слова var, отличается от поведения переменных и констант, объявленных с использованием let и const.
👉 @frontendInterview
Что выведет данный код?
Этот код выведет 0. Оператор delete используется для удаления свойств объектов. А x — это не свойство объекта — это локальная переменная. Оператор delete не воздействует на локальные переменные.
👉 @frontendInterview
Этот код выведет 0. Оператор delete используется для удаления свойств объектов. А x — это не свойство объекта — это локальная переменная. Оператор delete не воздействует на локальные переменные.
👉 @frontendInterview
Что выведет следующий код?
Этот код выведет xyz. Свойство company является не свойством объекта emp1, а свойством его прототипа. Оператор delete не удаляет свойства прототипов объектов. У объекта emp1 нет собственного свойства company. Проверить это можно так:
👉 @frontendInterview
Этот код выведет xyz. Свойство company является не свойством объекта emp1, а свойством его прототипа. Оператор delete не удаляет свойства прототипов объектов. У объекта emp1 нет собственного свойства company. Проверить это можно так:
console.log(emp1.hasOwnProperty('company')); // false
Если нам всё же необходимо удалить это свойство — сделать это можно, либо напрямую обратившись к объекту Employee (delete Employee.company), либо — обратившись к прототипу объекта emp1, воспользовавшись его свойством proto (delete emp1.proto.company).👉 @frontendInterview
Web Components in Action (2019)
Веб-компоненты - это стандартизированный способ создания многоразовых пользовательских элементов для веб-страниц и приложений с использованием HTML, CSS и JavaScript. Веб-компонент хорошо инкапсулирован, сохраняет свою внутреннюю структуру отдельно от других элементов страницы, чтобы они не сталкивались с остальной частью кода. Работая с книгой, вы научитесь проектировать, создавать и развертывать повторно используемые веб-компоненты с нуля.
👉 @frontendInterview
Веб-компоненты - это стандартизированный способ создания многоразовых пользовательских элементов для веб-страниц и приложений с использованием HTML, CSS и JavaScript. Веб-компонент хорошо инкапсулирован, сохраняет свою внутреннюю структуру отдельно от других элементов страницы, чтобы они не сталкивались с остальной частью кода. Работая с книгой, вы научитесь проектировать, создавать и развертывать повторно используемые веб-компоненты с нуля.
👉 @frontendInterview
Последний выживший
Вам дана строка и массив чисел. Числа обозначают позиции букв в строке, которые должны быть удалены. После удаления уменьшается length массива. Верните букву, которая останется в массиве после удаления.
Пример:
👉 @frontendInterview
Вам дана строка и массив чисел. Числа обозначают позиции букв в строке, которые должны быть удалены. После удаления уменьшается length массива. Верните букву, которая останется в массиве после удаления.
Пример:
let str = "zbk", arr = [0, 1]
str = "bk", arr = [1]
str = "b", arr = []
return 'b'👉 @frontendInterview
React Design Patterns and Best Practices (2019)
В книге рассказывается о том, как, работая с React.js, применять существующие шаблоны проектирования в разных ситуациях, будь то новые или уже существующие проекты. Книга поможет вам начать работать с React, создавая ваши проекты более гибкими, эффективными и простыми в обращении, значительно повышая скорость рабочего процесса без снижения качества.
👉 @frontendInterview
В книге рассказывается о том, как, работая с React.js, применять существующие шаблоны проектирования в разных ситуациях, будь то новые или уже существующие проекты. Книга поможет вам начать работать с React, создавая ваши проекты более гибкими, эффективными и простыми в обращении, значительно повышая скорость рабочего процесса без снижения качества.
👉 @frontendInterview