Frontend Interview - собеседования по Javascript / Html / Css
10.4K subscribers
2.1K photos
118 videos
320 files
501 links
Канал для подготовки к собеседованиям по фронтенду

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront

Купить рекламу: https://telega.in/c/frontendinterview

Канал в реестре РКН:
https://rknn.link/su
Download Telegram
В чем разница между 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
Какое значение примет result?
Anonymous Quiz
54%
true
25%
false
21%
SyntaxError
Что делает и для чего нужна функция `Function.prototype.bind`?

Метод 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, оно попытается обработать событие (если привязан обработчик), затем событие всплывет вверх к своему родителю и это повторится снова. Подобное всплытие проходит по всем предкам элемента вплоть до document. Всплытие событий является механизмом, на котором основано делегирование событий.
Какое значение примет result?
Anonymous Quiz
42%
true
58%
false
Front-end. Клиентская разработка для профессионалов.

В книге “Front-end. Клиентская разработка для профессионалов” рассмотрены все важнейшие навыки работы с JavaScript, HTML5 и CSS3, требуемые серьезному разработчику, чтобы преуспеть в создании современного клиентского кода. Читатель быстро освоится с новыми инструментами и технологиями, с проверенными практиками, которые актуальны уже сегодня. В каждой главе рассматриваются важнейшие концепции и API, неотделимые от качественной веб-разработки, тщательно проверенные и отточенные в процессе решения реальных практических задач.
Nathan катается на велосипеде.

За час катания он выпивает 0.5 литра воды.
Вам дано время, в течение которого катается Nathan. Напишите функцию, которая вернет количество литров воды, которое выпьет Nathan, округленное до меньшего значения.

Примеры:
time = 3 ----> litres = 1

time = 6.7---> litres = 3

time = 11.8--> litres = 5
CSS in Depth

Данная книга не только раскроет вам все секретные техники применения CSS, но и благодаря оригинальным примерам отточит навыки применения этих техник на практике. После прочтения вы станете лучше ориентироваться в таких темах, как библиотеки шаблонов и адаптивная верстка, также вы запасетесь вдохновением для создания новых неповторимых дизайнов.
​Что такое приведение типов?

Конвертация встроенных типов данных друг в друга в 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 - число
Какие есть виды сравнения в JavaScript

В 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