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
​Что такое приведение типов?

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

Очень простой способ проверить, имеет ли число дробную часть — разделить его на единицу и проверить остаток.

function isInt(num) {
return num % 1 === 0;
}

console.log(isInt(4)); //true;
console.log(isInt(12.2)); //false;
console.log(isInt(0.3)); //false
Почему объекты с идентичными свойствами не равны?

Непримитивные значения в JavaScript (объекты) передаются по ссылке, а операторы сравнения (== и ===) сравнивают именно ссылки. Поэтому два разных объекта с идентичными свойствами не будут равны друг другу.

let a = [1, 2, 3];
let b = [1, 2, 3];

a == b //false
a === b //false
Какое значение примет result?
Anonymous Quiz
42%
undefined
18%
6
30%
3
10%
1
Как проверить, является ли объект массивом?

Лучший способ узнать, является ли объект инстансом определенного класса, — использовать метод Object.prototype.toString().

 let arr = [1, 2, 3];
let obj = {'a': 1, 'b': 2};
let str = "hello";
let foo = function() {};

console.log(Object.prototype.toString.call(arr)); // [object Array]
console.log(Object.prototype.toString.call(obj)); // [object Object]
console.log(Object.prototype.toString.call(str)); // [object String]
console.log(Object.prototype.toString.call(foo)); // [object Function]
Д. Дакетт – Javascript и jQuery. Интерактивная веб-разработка

Тот редкий случай, когда книга рассчитана на программистов, контент-менеджеров и веб-дизайнеров. Автор рассматривает все необходимые основы для того, чтобы начать разработку простого софта. По окончании обучения вы сможете создавать JS-сценарии и интерактивные сайты, использовать библиотеку jQuery для упрощения кода, улучшать формы и проверять данные.
Двойной сэндвич

Вам дан список элементов. Все элементы кроме одного уникальны. Единственный элемент появляется в списке дважды.
Напишите функцию, которая вернет список элементов, которые находятся между неуникальными элементами.

Примеры:
[0, 1, 2, 3, 4, 5, 6, 1, 7, 8] => [2, 3, 4, 5, 6]
["None", "Hello", "Example", "hello", "None", "Extra"] => ["Hello", "Example", "hello"]
[0, 0] => []
[true, false, true] => [false]
"example" => "xampl"
Л. Атенсио – Функциональное программирование на JavaScript

Функциональное программирование облегчает поддержание и сопровождение кода, способствуя «наведению порядка» в слабосвязанных элементах и отдельно взятых компонентах. Автор подробно разбирает способы улучшения приложений, расширения и увеличения производительности. Вы научитесь понимать разницу между императивным, объектно-ориентированным и функциональным подходами к программированию на практических примерах.