В чем разница между call и apply?
Сходство заключается в том, что и .call, и .apply используются для вызова функций, а также первый параметр будет использоваться как значение this внутри функции. А разница в том, что .call в качестве следующих аргументов принимает аргументы, разделенные запятыми, в то время как .apply в качестве следующих аргументов принимает массив аргументов.
Сходство заключается в том, что и .call, и .apply используются для вызова функций, а также первый параметр будет использоваться как значение this внутри функции. А разница в том, что .call в качестве следующих аргументов принимает аргументы, разделенные запятыми, в то время как .apply в качестве следующих аргументов принимает массив аргументов.
function add(a, b) {
return a + b;
}
console.log(add.call(null, 1, 2)); // 3
console.log(add.apply(null, [1, 2])); // 3Что делает и для чего нужна функция `Function.prototype.bind`?
Метод bind() создаёт новую функцию, которая при вызове устанавливает в качестве контекста выполнения this предоставленное значение. В метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.
Метод bind() создаёт новую функцию, которая при вызове устанавливает в качестве контекста выполнения this предоставленное значение. В метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.
let user = {
firstName: "Вася",
say(phrase) {
alert(`${phrase}, ${this.firstName}!`);
}
};
let say = user.say.bind(user);
say("Привет");
// Привет, Вася (аргумент "Привет" передан в функцию "say")
say("Пока");
// Пока, Вася (аргумент "Пока" передан в функцию "say")
По моему опыту, это наиболее полезно для привязки значения this в методах классов, которые вы хотите передать в другие функции. Это часто делается в компонентах React.Какое значение свойства line-height у элемента h1?
Anonymous Quiz
21%
48px
12%
24px
36%
32px
26%
2px
5%
16px
Объясните, что такое всплытие событий (event bubbling)
Когда событие срабатывает на элементе DOM, оно попытается обработать событие (если привязан обработчик), затем событие всплывет вверх к своему родителю и это повторится снова. Подобное всплытие проходит по всем предкам элемента вплоть до
Когда событие срабатывает на элементе DOM, оно попытается обработать событие (если привязан обработчик), затем событие всплывет вверх к своему родителю и это повторится снова. Подобное всплытие проходит по всем предкам элемента вплоть до
document. Всплытие событий является механизмом, на котором основано делегирование событий.Front-end. Клиентская разработка для профессионалов.
В книге “Front-end. Клиентская разработка для профессионалов” рассмотрены все важнейшие навыки работы с JavaScript, HTML5 и CSS3, требуемые серьезному разработчику, чтобы преуспеть в создании современного клиентского кода. Читатель быстро освоится с новыми инструментами и технологиями, с проверенными практиками, которые актуальны уже сегодня. В каждой главе рассматриваются важнейшие концепции и API, неотделимые от качественной веб-разработки, тщательно проверенные и отточенные в процессе решения реальных практических задач.
В книге “Front-end. Клиентская разработка для профессионалов” рассмотрены все важнейшие навыки работы с JavaScript, HTML5 и CSS3, требуемые серьезному разработчику, чтобы преуспеть в создании современного клиентского кода. Читатель быстро освоится с новыми инструментами и технологиями, с проверенными практиками, которые актуальны уже сегодня. В каждой главе рассматриваются важнейшие концепции и API, неотделимые от качественной веб-разработки, тщательно проверенные и отточенные в процессе решения реальных практических задач.
Nathan катается на велосипеде.
За час катания он выпивает 0.5 литра воды.
Вам дано время, в течение которого катается Nathan. Напишите функцию, которая вернет количество литров воды, которое выпьет Nathan, округленное до меньшего значения.
Примеры:
За час катания он выпивает 0.5 литра воды.
Вам дано время, в течение которого катается Nathan. Напишите функцию, которая вернет количество литров воды, которое выпьет Nathan, округленное до меньшего значения.
Примеры:
time = 3 ----> litres = 1
time = 6.7---> litres = 3
time = 11.8--> litres = 5CSS in Depth
Данная книга не только раскроет вам все секретные техники применения CSS, но и благодаря оригинальным примерам отточит навыки применения этих техник на практике. После прочтения вы станете лучше ориентироваться в таких темах, как библиотеки шаблонов и адаптивная верстка, также вы запасетесь вдохновением для создания новых неповторимых дизайнов.
Данная книга не только раскроет вам все секретные техники применения CSS, но и благодаря оригинальным примерам отточит навыки применения этих техник на практике. После прочтения вы станете лучше ориентироваться в таких темах, как библиотеки шаблонов и адаптивная верстка, также вы запасетесь вдохновением для создания новых неповторимых дизайнов.
Что такое приведение типов?
Конвертация встроенных типов данных друг в друга в JavaScript называется приведением типов (coercion). Оно бывает явное (explicit) и неявное (implicit).
Пример явного приведения:
Конвертация встроенных типов данных друг в друга в JavaScript называется приведением типов (coercion). Оно бывает явное (explicit) и неявное (implicit).
Пример явного приведения:
let a = '42'; //строкаПример неявного приведения:
let b = Number(a);
a; // "42" - строка
b; // 42 - число
let a = '42'; //строка
let b = a * 1; //строка неявно приводится к числу
a; // "42" - строка
b; // 42 - числоКакое значение примет result?
Anonymous Quiz
8%
[1, 2, 3]
10%
4
63%
[0, 1, 2, 3]
12%
[1, 2, 3, 0]
6%
3
Какие есть виды сравнения в JavaScript
В JavaScript есть два вида сравнения:
1. строгое (strict) без приведения типов (===);
2. абстрактное с приведением типов.
1. Если значения (стороны сравнения) могут принимать значения true или false, избегайте нестрогого сравнения и используйте ===;
2. Если в сравнении участвуют специфические значения (0, "", [] — пустой массив), избегайте нестрогого сравнения.
3. В остальных случаях можно использовать ==. Это безопасно и во многих случаях делает код более читаемым.
В JavaScript есть два вида сравнения:
1. строгое (strict) без приведения типов (===);
2. абстрактное с приведением типов.
var a = "42"
var b = 42
a == b; //true - абстрактное, строка привелась к числу
a === b; //false - строгое
Сравнение осуществляется по некоторым простым правилам:1. Если значения (стороны сравнения) могут принимать значения true или false, избегайте нестрогого сравнения и используйте ===;
2. Если в сравнении участвуют специфические значения (0, "", [] — пустой массив), избегайте нестрогого сравнения.
3. В остальных случаях можно использовать ==. Это безопасно и во многих случаях делает код более читаемым.
Кто убийца?
Вам удалось сузить список подозреваемых до небольшого числа людей.
К счастью, у вас есть информация о том, кто с кем встречался.
Вам дан список имен подозреваемых и всех, с кем подозреваемые встречались в этот день.
Вам удалось сузить список подозреваемых до небольшого числа людей.
К счастью, у вас есть информация о том, кто с кем встречался.
Вам дан список имен подозреваемых и всех, с кем подозреваемые встречались в этот день.
{'James': ['Jacob', 'Bill', 'Lucas'],
'Johnny': ['David', 'Kyle', 'Lucas'],
'Peter': ['Lucy', 'Kyle']}
А также список убитых['Lucas', 'Bill']
Найдите имя убийцы. В нашем случае это James, так как он единственный, кто видел Lucas и BillКакое значение свойства color у элемента h1?
Anonymous Quiz
4%
зависит от значения свойства color в браузере
4%
black
60%
green
33%
red