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

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

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

Канал в реестре РКН:
https://rknn.link/su
Download Telegram
Уважаемые подписчики!

Сообщаем вам важную новость: теперь, специально для вас, на канале появятся материалы для подготовки к собеседованиям.
В их число будут входить викторины, полезные книги, а также вопросы, которые вам могут задать на собеседованиях.
👍4
Какое значение примет result?
Anonymous Quiz
59%
1
2%
0
31%
NaN
8%
undefined
👍1
Какие типы данных есть в JS?
Есть восемь основных типов данных в JavaScript.

1. Number представляет как целочисленные значения, так и числа с плавающей точкой.
 let n = 123;

2. BigInt позволяет работать с целыми числами произвольной длины.
 const bigInt = 1234567890123456789012345678901234567890n;

3. String в JavaScript должна быть заключена в кавычки.
 let str = "Привет";

4. Boolean)может принимать только два значения: true (истина) и false (ложь).
 let nameFieldChecked = true;
let ageFieldChecked = false;

5. Null формирует отдельный тип, который содержит только значение null:
 let age = null;

6. Undefined формирует тип из самого себя так же, как и null.
Оно означает, что «значение не было присвоено».
 let x;
alert(x); // выведет "undefined"

7. Тип object (объект) – особенный.
Объекты используются для хранения коллекций данных или более сложных объектов.
 const object = {
name="Hello"
}

8. Тип symbol (символ) используется для создания уникальных идентификаторов объектов.
 var sym1 = Symbol();
❤1
Какое значение color у элемента div?
Anonymous Quiz
4%
black
62%
green
35%
blue
👍1
Что значит ссылка на переменную?

Одним из фундаментальных отличий объектов от примитивных типов данных является то, что они хранятся и копируются «по ссылке».

Примитивные типы: строки, числа, логические значения – присваиваются и копируются «по значению».
Например:
let message = "Hello!";
let phrase = message;
В результате мы имеем две независимые переменные, каждая из которых хранит строку "Hello!".

Объекты ведут себя иначе.

Сам объект хранится где-то в памяти. А в переменной лежит «ссылка» на эту область памяти.
Когда переменная объекта копируется – копируется ссылка, сам же объект не дублируется.

Если мы представляем объект как ящик, то переменная – это ключ к нему. Копирование переменной дублирует ключ, но не сам ящик.

Например:
let user = { name: "John" };
let admin = user; // копируется ссылка
Теперь у нас есть две переменные, каждая из которых содержит ссылку на один и тот же объект и мы можем использовать любую из переменных для доступа и изменения содержимого.
Напишите функцию, которая принимает строку и возвращает массив из четных чисел.

Пример:
"abcdefghijklm" -->
["b", "d", "f", "h", "j", "l"]

"a"-->
"invalid string"
Гудлиф П. "Ремесло программиста. Практика написания хорошего кода"

Книга
Питера Гудлифа «Ремесло программиста» поможет вам перейти на более высокий уровень мастерства программирования и покажет, как писать код, который больше чем «просто работает».

Перед вами руководство по выживанию в условиях промышленного производства ПО. Эта книга посвящена тому, чему вас никто не учил: как правильно программировать в реальной жизни. Здесь вы найдете не связанные с конкретными языками рекомендации, полезные всем разработчикам и касающиеся таких проблем, как стиль представления, выбор имен переменных, обработка ошибок, безопасность, эффективность групповой работы, технологии разработки и составление документации.

Читатель должен обладать опытом программирования, ибо книга не учит программированию - она учит правильно программировать. Издание будет полезно и студентам старших курсов, знакомым с принципами программирования.
CSS Что делает свойство margin? Какие есть особенности у отрицательных значений? Что такое margin collapsing?

margin - Устанавливает величину отступа от каждого края элемента.

Отрицательные margin-left/top сдвигают элемент влево-вверх. Остальные элементы это учитывают, в отличие от сдвига через position.

Отрицательные margin-right/bottom заставляют другие элементы думать, что блок меньше по размеру справа-внизу, чем он на самом деле.

Если у элемента нет родителя, отступом будет расстояние от края элемента до края окна браузера с учетом того, что у самого окна по умолчанию тоже установлены отступы. Чтобы от них избавиться, следует устанавливать значение margin для селектора <body> равное нулю.

margin-top и margin-bottom иногда объединяются в один, с размером равным наибольшему из них (или размеру одного, если они равны).
Это поведение известно как margin collapsing.

Схлопываются отступы соседних элементов (за исключением случая, когда к последнему элементу применено свойство clear).
Когда при обращении к свойству объекта стоит использовать точечную нотацию, а когда через строку в квадратных скобках?

При обращении к свойствам через точку ключ должен представлять собой действительный JavaScript-идентификатор.
 let obj = {
message : "A message"
}
obj.message //"A message"
obj["message"] //"A message"

При попытке обращения к несуществующему свойству объекта сообщения об ошибке не появится, но возвращено будет значение undefined:
 obj.otherProperty //undefined

При использовании для доступа к свойствам квадратных скобок можно применять ключи, которые не являются действительными JavaScript-идентификаторами. Они могут иметь любое значение, которое можно привести к строке:
 let french = {};
french["merci beaucoup"] = "thank you very much";

french["merci beaucoup"];
//"thank you very much"

Если в качестве ключей используются нестроковые значения, они автоматически преобразуются к строкам (с использованием, если это возможно, метода toString()):
Напишите функцию, которая принимает строку из слов и возвращает количество букв в самом коротком слове.

Примеры:
"bitcoin take over the world maybe who knows perhaps")
// 3

"turns out random test cases are easier than writing out basic ones")
//3
Какое изначальное значение у CSS свойства height?
Anonymous Quiz
9%
0%
3%
100vw
66%
auto
11%
100%
11%
normal
Что такое box-sizing? Что делает CSS-правило * { box-sizing: border-box; }? Зачем оно нужно?

Согласно
спецификации CSS ширина блока складывается из ширины контента (width), значений отступов (margin), полей (padding) и границ (border). Аналогично обстоит и с высотой блока. Свойство box-sizing позволяет изменить этот алгоритм, чтобы свойства width и height задавали размеры не контента, а размеры блока.

Значения:
content-box - основывается на стандартах CSS, при этом свойства width и height задают ширину и высоту контента и не включают в себя значения отступов, полей и границ.

border-box - свойства width и height включают в себя значения полей и границ, но не отступов (margin).

padding-box - свойства width и height включают в себя значения полей, но не отступов (margin) и границ (border).

Самый распространенный вариант использования:
 *::before, *::after {
box-sizing: border-box;
}
Вы задаете ширину элементу, и вам не нужно производить вычисления при изменении границ, или внутренних отступов.