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

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

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

Канал в реестре РКН:
https://rknn.link/su
Download Telegram
Какое значение свойства display НЕ может использоваться совместно со свойством vertical-align?
Anonymous Quiz
33%
inline
25%
block
16%
inline-block
26%
table-cell
🤔16👍12
Оператор void в JavaScript

Я полагал, что мне знакомы все операторы JavaScript до тех пор пока не увидел оператор void, который, как оказалось, присутствует в JS с 1996-го года. Его поддерживают все браузеры, работает он довольно просто. Вот что пишут об этом на MDN:

Оператор void вычисляет переданное выражение и возвращает undefined.

Этот оператор позволяет, например, использовать альтернативную форму конструирования IIFE:

 void function iife() {  
console.log('hello');
}();

// это – то же самое, что и...

(function iife() {
console.log('hello');
})()

По поводу void можно сделать лишь одно замечание, которое заключается в том, что вычисление выражения это… void (undefined)!
const word = void function iife() {
return 'hello';
}();

// word имеет значение "undefined"

const word = (function iife() {
return 'hello';
})();

// word имеет значение "hello"


👉 @frontendInterview
👍13🔥3😱2
Что выведется в консоль?
Anonymous Quiz
24%
Ошибка
19%
false
56%
true
👍31😁21
Можно ли применить стили к тексту, выделенному пользователем с помощью мыши?
Anonymous Quiz
85%
Да
15%
Нет
Оптимизация js скриптов

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

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

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

Итак, вы убедились, что скрипты только нужные, а загружаются они только на нужных страницах. Далее смотрим внутри этих файлов. Сжат ли там код? Если нет, то простое сокращение ненужных символов может сэкономить десятки килобайт. Можно это сделать вручную (например, https://jscompress.com/), а можно с помощью дополнительных сервисов, которые сжимают код всех подключенных js файлов автоматически (например, в Modx это MinifyX).

Следующий этап оптимизации - проверить место подключения js файлов. Чем выше в шаблоне сайта подключение скриптов, тем сильнее их загрузка откладывает отображение основного контента сайта. Не всем скриптам обязательно подключение в разделе head, некоторые можно перенести в самый конец документа перед закрывающим тегом body.

👉 @frontendInterview
👍7👎1
Использование Docker

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

👉 @frontendInterview
Add Length

Вам дан массив, состоящий из строк. Добавьте к каждой строке в массиве число, представляющее собой длину этой строки.

Пример:
"apple ban" --> ["apple 5", "ban 3"]
"you will win" -->["you 3", "will 4", "win 3"]


👉 @frontendInterview
😁5👍4👎4
Подработка для веб-разработчиков от 2 часов в неделю! Делайте код ревью на одном из курсов по JavaScript, React, Node.js или других в HTML Academy. Учитесь сами, обучая других: дружное комьюнити, удалёнка, море фана, опыт преподавания и скидки для своих.
Приходите в команду: https://tml.io/2snii
TypeScript void, never и unknown

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

Для функций и методов, которые ничего не возвращают и у которых отсутствует аннотация типа возвращаемого значения, вывод типов определяет принадлежность к типу void.
Тип Void является подтипом Any и супертипом для Null и Undefined.
 function a(  ): void {
let result: number = 5;
return result; // Error
}
function b( ): void {
let result: string = '5';
return result; // Error
}
function c( ): void {
let result: any = 5;
return result; // Ok
}

Never
Примитивный типа данных Never служит для указания того, что какие-либо операции никогда не будут выполнены.

Never обозначается ключевым словом never и так же как и void не имеет явных значений.
Тип Never можно указать только той функции, по сценарию из которой, программа, реально никогда не сможет выйти.
 function error( message: string ):  never {
throw new Error( message );
}

function loop(): never {
while( true ) { }
}

Unknown
Тип Unknown является типобезопасным аналогом типа any и представлен в виде литерала unknown. Все типы совместимы с типом unknown, в то время как сам тип unknown совместим только с самим собой и типом any.
Кроме того, над типом unknown запрещено выполнение каких-либо операций.
let v0: any;
v0.a = 5; // Ok
v0.a = ''; // Ok
v0(); // Ok

let v1: unknown = v0; // Ok
v1.a = 5; // Error
v1.a = ''; // Error
v1(); // Error


👉 @frontendInterview
👍21
Как вырасти от junior до middle? Middle-специалист отличается не только опытом и уровнем владения технологиями, но и софт скилами.

Курс Яндекс Практикума «Мидл фронтенд-разработчик» составлен так, чтобы вы могли освоить и то, и другое а ещё:
•разработать мессенджер, используя только JavaScript, Typenoscript, CSS и API браузера;
•познакомиться с теорией и отработать её на практике в больших проектах;
•научиться брать ответственность за решения и вкладываться в общий результат;
•самостоятельно декомпозировать задачи и распределять время;•исследовать смежные сферы программирования, без которых невозможен фронтенд:
•информационную безопасность, прототипирование интерфейсов, командную работу, DevOps, ООП.

На всех этапах вас будут сопровождать опытные разработчики: мы не дадим просесть по учёбе и поможем выкроить время на образование. Вы будете практиковаться на реальных кейсах и положите в портфолио работающие проекты.

А карьерные консультации подготовят вас к разговору о повышении или помогут с поиском новой работы.

Начать учиться

👉 @frontendInterview
👍1
Какое значение свойства background-color у элемента div?
Anonymous Quiz
3%
black
4%
blue
58%
red
34%
transparent
😱22👍131👎1
TypeScript Пересечение (Intersection Type)

Пересечение (Intersection) - мощный механизм TypeScript, который позволяет рассматривать множество типов данных, как один. Пересечение указывается с помощью оператора амперсанда &, по обе стороны от которого указываются типы данных.

Переменной, которой был указан тип пересечение A и B и С может быть присвоено значение, которое принадлежит к типам A и B и C одновременно.

 name: A & B & C; 
// значение должно принадлежать ко всем типам одновременно


👉 @frontendInterview
👍13👎2
Какое значение padding-left у элемента p?
Anonymous Quiz
30%
40px
34%
20px
12%
30px
24%
10px
15👍4
Какое значение CSS свойства box-sizing делает так, что свойства width и height включают контент, внутренний отступ и границы, но не включают внешний отступ?
Anonymous Quiz
21%
content-box
67%
border-box
12%
padding-box
👍3
Сборка мусора в JS

Управление памятью в JavaScript выполняется автоматически и незаметно. Мы создаём примитивы, объекты, функции… Всё это занимает память.

Основной концепцией управления памятью в JavaScript является принцип достижимости.
Если упростить, то «достижимые» значения – это те, которые доступны или используются. Они гарантированно находятся в памяти.
Любое другое значение считается достижимым, если оно доступно из корня по ссылке или по цепочке ссылок.

В интерпретаторе JavaScript есть фоновый процесс, который называется сборщик мусора. Он следит за всеми объектами и удаляет те, которые стали недостижимы.

Простой пример
 // в user находится ссылка на объект
let user = {
name: "John"
};
Глобальная переменная user ссылается на объект {name: "John"}
Если перезаписать значение user, то ссылка потеряется:
user = null;
Теперь объект John становится недостижимым. К нему нет доступа, на него нет ссылок. Сборщик мусора удалит эти данные и освободит память.
👍23