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

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

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

Канал в реестре РКН:
https://rknn.link/su
Download Telegram
alert()
Разработчики делают красивые модальные окна неделю, но у нас всегда есть готовое некрасивое.

При помощи директивы alert() можно вывести на экран пользователя модальное окно с каким-нибудь текстом.

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

👉 @frontendInterview
👎11👍5
Какой из следующих вариантов определения типа в TypeScript является правильным для переменной, которая может содержать либо строку, либо число?
Anonymous Quiz
89%
let myVar: string | number = 'hello';
6%
let myVar: string & number = 'hello';
5%
let myVar: string, number = 'hello';
1%
let myVar: string + number = 'hello';
🔥62👍1
Что выведется в консоль?
Anonymous Quiz
79%
true
21%
false
2👍1
В чём разница между null, undefined и объявленной переменной без начального значения? (let foo;)

null обычно задаётся переменной явно и означает, что она ничего не содержит. undefined показывает, что значение переменной «не определено». undefined обычно присваивается переменной, когда она была объявлена, но не было определено её начальное значение. Также, undefined может возвращаться и из функции — это происходит, если функции явно не возвращает ничего другого. null же обычно возвращают из функции явно, чтобы показать, что результат функции равен «ничему».

Без начального значения можно оставлять только переменную объявленную через let или var. Если объявить переменную через const и не задать ей начального значения, будет ошибка: Uncaught SyntaxError: Missing initializer in const declaration.

Оператор typeof для null работает странно. typeof(null) выдаст нам строку 'object'. Это официально признанная ошибка в языке, сохраняемая для совместимости. Ошибка тут в том, что null это отдельный тип данных, а не объект. С undefined всё куда лучше и typeof(undefined) выдаст нам 'undefined'. Почитать ещё о typeof можно здесь.

👉 @frontendInterview
👍11🔥7
Modern Full-Stack Development: Using TypeScript, React, Node.js, Webpack, Python, Django, and Docker, 2nd Edition (2022)

Изучите, что могут предложить React, Node, Python, Django, TypeScript, Webpack и Docker по отдельности, и как они все вместе подходят для разработки современных приложений.
Вы начнете с создания прочного фундамента знаний и быстро расширите его, создав три различных реальных приложения. Это не просто простые, надуманные примеры, а реальные приложения, которые вы можете установить на свои серверы и использовать в реальных условиях.

👉 @frontendInterview
👍2
Уникальные по порядку

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

Примеры:
uniqueInOrder('AAAABBBCCDAABBB')
// ['A', 'B', 'C', 'D', 'A', 'B']

uniqueInOrder('ABBCcAD')
//['A', 'B', 'C', 'c', 'A', 'D']

uniqueInOrder([1,2,2,3,3])
//[1,2,3]


👉 @frontendInterview
👍6🤔2
В первом случае просто была вызвана функция, которая ничего не возвращает. Значение переменной будет равно undefined
 const animal = Animal() // 
console.log(animal) // undefined

Во втором случае перед функцией Animal стоит оператор new. Функция Animal становится конструктором. Она выполняется, но так как this внутри функции не используется, и сама функция ничего не возвращает, то ничего не происходит. Результатом операции становится новый объект, который ссылается на функцию Animal как на конструктор. Этот объект присваивается переменной animal
 const animal = new Animal() // 

Если Animal имеет вид:
 function Animal() {
this.name = 'Cat'
}

То переменная animal, созданная с помощью new, будет иметь доступ к полю name:
console.log(animal)
// Animal { name: 'Cat' }
// Если мы явно не возвращаем ничего из конструктора,
// то получаем сам объект в качестве результата.


👉 @frontendInterview
6👍3🔥2
Какое значение свойства position используется для задания позиционирования элемента относительно окна браузера?
Anonymous Quiz
9%
static
16%
relative
34%
absolute
41%
fixed
7
Почему принято размещать <link> со стилями внутри <head>, а <noscript> перед закрывающим тегом </body>? Когда можно нарушить это правило?

Когда мы размещаем стили внутри тега <head>, браузер понимает как и с какими стилями отрисовывать контент при первом рендере. То есть, чтобы отобразить страницу, браузеру нужно знать какой контент нарисовать (HTML) и как должны выглядеть элементы (CSS). Если браузер не получит CSS заранее, то HTML-элементы сначала отобразятся со стилями по умолчанию, а после загрузки CSS применяться новые стили. Это вызовет мигание контента. Добавление тега <link> co стилями в начало документа предотвращает повторную перерисовку.

Тег <noscript> обычно идёт перед закрывающимся тегом </body>. Это даёт уверенность, что элементы, к которым идёт обращение в скрипте, существуют на странице.

Мы можем размещать скрипт в <head>, если он должен выполнится первым и не полагается на то, существует ли элемент на странице. Или если добавляем атрибуты async или defer к тегу <noscript>. Про их отличия можно почитать подробнее в доке про <noscript>.

defer сообщает браузеру, что скрипт нужно загружать в фоновом режиме и запустить его, как только DOM-дерево будет полностью построено.

Ещё один способ — указать атрибут <noscript type="module">, который говорит браузеру, что скрипт нужно запустить как модульный. Модульные скрипты по дефолту являются отложенными, то есть <noscript type="module" defer> равносильно <noscript type="module">, и указание defer не будет иметь никакого эффекта.

👉 @frontendInterview
👍276
Какое свойство React используется для передачи данных от родительского компонента к дочернему?
Anonymous Quiz
3%
state
87%
props
6%
context
4%
refs
6👍3👎3😁1
Можно ли наследовать интерфейсы в TypeScript?
Anonymous Quiz
90%
Да
10%
Нет
Какая разница между ссылками и кнопками? В каких случаях надо использовать ссылку, в каких кнопку? Почему эта разница важна с точки зрения доступности?

Ощутимая разница между ссылками и кнопками в том, что «активация» элемента при фокусе с клавиатуры происходит по-разному. Для ссылок — клавишей Enter, а для кнопок — пробелом или Enter. Пользователь, привыкший перемещаться по интерфейсу сайта и взаимодействовать с ним с клавиатуры, получит неожиданное поведение при попытке взаимодействия с ложной ссылкой или кнопкой.

Чтобы определить, какой тег использовать, ссылку или кнопку, нужно подумать про ожидаемое поведение при взаимодействии с элементом. Если при нажатии на элемент подразумевается переход на другую страницу, то в коде элемент нужно сделать тегом <a>, то есть ссылкой. Если при нажатии произойдёт действие в рамках текущей страницы, например, откроется модальное окно с формой входа, то такой элемент нужно сделать тегом <button>.

С точки зрения доступности у ссылок и кнопок разные роли. У ссылок — link, у кнопок — button. Скринридер перед озвучиванием содержимого элемента произносит его роль. Если используете неправильные теги, роли перемешаются и это запутает пользователей скринридеров.

👉 @frontendInterview
👍101
This media is not supported in your browser
VIEW IN TELEGRAM
Изучайте самые востребованные направления в разработке и получите возможность устроиться на работу в лидирующие компании!

На канале факультета программирования  вы найдёте контент, который поможет вам набрать скиллы в программировании: Q&A с преподавателями, гайды, реальный кейсы и мемы.

Погрузитесь в мир кодинга — подписывайтесь на канал факультета программирования!
👎3😁1
Advanced Data Structures and Algorithms: Learn how to enhance data processing with more complex and advanced data structures (2023)

Эта книга научит вас анализировать алгоритмы, чтобы справиться с трудностями сложного программирования. Затем она поможет вам понять, как продвинутые структуры данных используются для эффективного хранения и управления данными. Далее, она поможет вам изучить и работать с методами "Разделяй и властвуй", динамическим программированием и жадными алгоритмами.

👉 @frontendInterview
👍4
Dodge The Birds

Герой игры может выполнить две команды. findBirds и jump.

findBirds() возвращает массив из птиц на экране
jump(height) - заставляет героя прыгнуть на определенную высоту.

Напишите функцию controller, которая будет избегать столкновения героя с птицами.

👉 @frontendInterview
👎5😱3
Почему JavaScript функции являются объектами первого класса (First-class Objects)?

Объект первого класса (first class object или first class citizen) это объект, который может быть передан как аргумент функции, возвращён из функции или присвоен переменной. Функции в JavaScript полностью соответствуют этому определению.

Функцию можно присвоить переменной:
 const multipleTwo = (n) => n * 2;

Функция может быть передаваемым аргументом другой функции:
 async function loadData(func) {
loading = true;
// другой код относящийся к инициализации статусов загрузки

await func();

loading = false;
// другой код относящийся к обработке статуса загрузки
}

function getData() {
// код получения данных с сервера
}

loadData(getData);

Функции могут быть возвращаемым значением другой функции:
function makeAdder(x) {
return function(y) {
return x + y;
};
};


👉 @frontendInterview
18