Интервью: Евгения, frontend-разработчика с 4 годами коммерческой разработки - видео HD

Интервью: Евгения, frontend-разработчика с 4 годами коммерческой разработки - видео
01:49:44

12n.ru 16755 роликов

Евгения, frontend-разработчика с 4 годами коммерческой разработки - видео.

Присоединяйся на канал в телеграмм: t.me/BudniFronta

Кто хочет учиться в GeekBrains с хорошей скидкой — оставляйте заявку: rebrand.ly/mockinterview

00:00 — Введение
01:18 — Знакомство с Евгением
06:07 — Как отработает оператор in?
06:44 — Антоним слову «абстракция»?
08:19 — Разбираемся с побитовыми операторами
18:46 — Задача 1 (https://jsfiddle.net/mockinterview/jLmekf02/)
01:02:17 — Задача 2 (https://jsfiddle.net/mockinterview/6ybp1vtd/)
01:26:40 — Вопросы из чата + общие вопросы

RSS
Жил-был PES
12:30
+1
Антоним слову «абстракция» это конкретика.
Алексей Дубинский
15:58
+1
Не так давно применял побитовые операции для нахождения среднего целого числа
Пример:
9 >> 1 // 4
что бы не писать Math.floor(9 / 2)
хотя второй вариант конечно понятней будет многим)
Константин Бондаренко
16:12
Мое решение задачи со скобками. Решение в стример еще не смотрел.

function check(str, bracketsConfig) {
if(str.length%2 !=0){return false}
let check = true;
while(check){
let oldStr = str;
for (let index = 0; index < bracketsConfig.length; index++) {
str = str.replaceAll(bracketsConfig[index].join(''), '');
}
if(oldStr == str){check = false;}
}
return str.length == 0;
}
Igor S
17:07
+3
Людей, которые на собеседовании ФРОНТЭНД разработчика, задают вопросы про антоним абстракции и побитовые операторы, можно точно описать антонимом слова «адекватность»…
Rasul Ali
10:26
Павел, как насчёт в начале видео вставлять небольшую(10-15 сек) нарезку с прикольными моментами из выпуска? Практически в каждом видео же такие есть) Мне кажется это добавило бы больше крутости формату, а Вас бы мотивировало делать больше экшна, так сказать. И может быть, если это не перебор, проигрывать на фоне музыку по типу Chill-hop или Jazz-hop (например из Soundcloud) на громкости не превышающей 5% от общей smile Я сам когда работаю врубаю на фоне безсмысленную инструментальную музыку, помогает сконцентрироваться
Человек с Топором
00:28
+1
Решил первую задачку. Код не очень изящно получился, но дело свое делает. Если интересно вот мое решение:
function check(str, bracketsConfig) {
if (str.length % 2 > 0) return false;

let detect = 0;
let brackets = bracketsConfig.flat(Infinity);

for (let i = 0; i < brackets.length; i += 2) {
for (let j = 0; j < str.length; j++) {
if (brackets[i] !== '|') {
if (detect === 0 && str[j] === brackets[i + 1]) return false;
if (str[j] === brackets[i]) detect += 1;
if (str[j] === brackets[i + 1]) detect -= 1;
}
}

if (
str.startsWith(brackets[i]) &&
!str.endsWith(brackets[i + 1]) &&
str.indexOf(brackets[i]) + 1 !== str.indexOf(brackets[i + 1])
) {
return false;
}
}
return detect === 0;
}
Человек с Топором
03:06
Заметил, что у меня в консоли выдает ошибку на использование метода replaceAll, работает только replace.
Человек с Топором
14:13
Думаю понятие компилятора должно отталкиваться не от того во что он превращает код, а от того как он это делает. То есть от самого процесса. А если в место байт кода скомпилируется в крестики и нолики это уже десятое дело. Моё субъективное мнение.
Артем Шуляк
20:02
+1
1. Во второй задаче не был учтен момент, что при проверке minYears минимально допустимый возраст получения прав (Категория А) это 16 лет. Тут, предположительно, либо на усмотрение кандидата проверка на 16 лет, но тогда нужно изменить текст сообщений в методе checkAge, или же при проверке minYears отталкиваться от значения 18 лет. По решению получается, что можно создавать «школы» с минимальным возрастным порогом меньше/больше предусмотренного законодательством.
2. Небольшое дополнение по вводу имени пользователя: нет проверки на ввод цифр и иных символов помимо заглавных/строчных букв (хотя может разрешено под никами регистрироваться).
Николай Чермянин
15:43
Вот мне кажется неплохое решение
const check = (str, options) => {
const parsedOptions = parseOptions(options);
let newStr = str
for(let i = 1; i <= str.length / 2; i++){
parsedOptions.forEach(item => {
newStr = newStr.replaceAll(item, '')
})
}
return !newStr;
}

const parseOptions = options => {
return options.map(item => {
return item.reduce((acc, current) => {
acc = acc + current
return acc
})
})
}