Frontend Interview - собеседования по Javanoscript / Html / Css – Telegram
Frontend Interview - собеседования по Javanoscript / Html / Css
11.4K subscribers
2.1K photos
117 videos
320 files
532 links
Канал для подготовки к собеседованиям по фронтенду

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

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

Канал в реестре РКН:
https://rknn.link/su
Download Telegram
В чем разница между "атрибутом" (attribute) и "свойством" (property)?

Атрибуты определены в разметке HTML, а свойства определены в DOM. Чтобы проиллюстрировать разницу, представьте, что у нас есть это текстовое поле в HTML: <input type="text" value="Hello">.

 const input = document.querySelector('input');
console.log(input.getAttribute('value')); // Hello
console.log(input.value); // Hello

Но после того, как вы измените значение текстового поля, добавив к нему "World!", будет:
console.log(input.getAttribute('value')); // Hello
console.log(input.value); // Hello World!
Человеческий фактор. Успешные проекты и команды

Эта книга рассказывает, как правильно работать с людьми, особенно с разработчиками и дизайнерами.

ДеМарко и Тимоти обращают внимание на ошибки, которые усложняют управление командой. Одна из них — чрезмерное стремление руководителя улучшить технологии работы, автоматизировать процессы. От этого страдает управление человеческими ресурсами, которое получает низший приоритет.
Найти нарушителя порядка

Вам дан массив из чисел. Они идут в порядке возрастания, кроме одного числа, которая разрушает этот порядок. Найдите это число.

Примеры:
 [1,2,3,4,17,5,6,7,8] => 17 is the only breaker.
[19,27,33,34,112,578,116,170,800] => 578 is the only breaker.
Алгоритмы. Построение и анализ

В книге описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения. Алгоритмы в книге "Алгоритмы. Построение и анализ" описаны простым человеческим языком и с применением псевдокода, который понятен любому, кто хоть в небольшой степени знаком с программированием, а пояснения принципов их работы даны без излишней математической строгости и требуют лишь элементарных знаний.
Что такое TypeScript? Для чего он нужен и какие проблемы решает?

Typenoscript — это скриптовый язык, компилируемый в JavaScript. Разработка Microsoft, которая, на сегодняшний день, успела завоевать и фанатов и недоброжелателей.

В TypeScript типизация статическая, что избавляет от множества проблем. Есть числовой тип, строковый, логический и другие. Возможно описывать и свои типы данных, например, с помощью enum

И в JS, и в TS есть поддержка объектно-ориентированного программирования: классы, объекты, наследование. Однако TypeScript шагнул чуть дальше и использует больше возможностей ОПП. В том числе, например, интерфейсы:
 interface IPost {
id: number;
text: string;
}

class Message implements IPost {
id: number;
text: string;
senderId: number;
recieverId: number;
}
Другой большой плюс — модификаторы доступа. Их в TypeScript три: public, private и protected.
class User {
//Приватные члены класса, которые недоступны извне
private id: number;
private login: number;
}

Также есть и другие возможности:
- определение полей в конструкторе;
- преобразование типов;
- абстрактные классы;
- обобщение и так далее.
Рассказать про следующие виды типизации, их особенности, плюсы и минусы:

слабая / сильная
Сильная типизация выделяется тем, что язык не позволяет смешивать в выражениях различные типы и не выполняет автоматические неявные преобразования, например нельзя вычесть из строки множество. Языки со слабой типизацией выполняют множество неявных преобразований автоматически, даже если может произойти потеря точности или преобразование неоднозначно.

статическая / динамическая
Статическая определяется тем, что конечные типы переменных и функций устанавливаются на этапе компиляции. Т.е. уже компилятор на 100% уверен, какой тип где находится. В динамической типизации все типы выясняются уже во время выполнения программы.

явная / неявная
Явно-типизированные языки отличаются тем, что тип новых переменных / функций / их аргументов нужно задавать явно. Соответственно языки с неявной типизацией перекладывают эту задачу на компилятор / интерпретатор.

структурная / номинативная
В отличие от номинативной, которая следит за названиями типов, структурная типизация принимает решение о совместимости типов на основе их содержимого.
Убрать дубликаты из массива

Создайте функцию, которая уберет дублирующие элементы в массиве и вернет этот массив.

Примеры:
distinct([1]) => [1]
distinct([1,2]) => [1, 2]
distinct([1,1,2]) => [1, 2]
Чему равна ширина элемента div?
Anonymous Quiz
41%
70px
22%
74px
13%
80px
24%
84px
Что такое Type Assertions в TypeScript?

Type assertion представляет модель преобразования значения переменной к определенному типу.
Обычно в некоторых ситуациях одна переменная может представлять какой-то широкий тип, например, any, который по факту допускает значения различных типов. Однако при этом нам надо использовать переменную как значение строго определенного типа. И в этом случае мы можем привести к этому типу.

Есть две формы приведения. Первая форма заключается в использовании угловых скобок:

 let someAnyValue: any = "hello world!";
let strLength: number = (<string>someAnyValue).length;
console.log(strLength); // 12

 let someUnionValue: string | number = "hello work";
strLength = (<string>someUnionValue).length;
console.log(strLength); // 10

Вторая форма заключается в применении оператора as:
 let someAnyValue: any = "hello world!";
let strLength: number = (someAnyValue as string).length;
console.log(strLength); // 12

let someUnionValue: string | number = "hello work";
strLength = (someUnionValue as string).length;
console.log(strLength); // 10
🔥 Новости из Лектрума 🔥

16 февраля пройдёт открытый урок из интенсива «Профессиональный курс React + Redux с современными frontend-методиками».

Участие бесплатное, а для тех, кто хочет получить больше плюшек и профит 😎 есть тариф «Расширенный».

Открытый урок — отличная возможность познакомиться с библиотекой React, научиться работать с JSX, освоить технику создания новых компонентов с помощью React, познакомиться с организацией курса, преподавателем, позадавать свои вопросы и если всё понравится, то продолжить обучение.

Зачем откладывать получение нового навыка?! Время — деньги!

Для кого:

🔸 Начинающие разработчики, которые уже выучили JavaScript.

🔸 Разработчики, которые переходят на MERN-стек.

🔸 Фронтенд разработчики, которые работали или учили React на классах, а теперь нужно освоить новую версию.

Не теряйте время и проходите регистрацию через сайт ивента ⬇️

Ждём всех в онлайне!