Подготовка к собеседованию на Frontend Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
приветствую вас в себя на канале текущее видео сегодняшний будет посвящено собеседованию впервые своей жизни я решила провести собеседование и она на позицию стажера фронтенд разработчика хочу сказать что предпосылка этому являлось то что я вот-вот должен был начать работу над своим проектом где есть фронт есть бег а также то что ребятам которые только начинают свой путь в разработке очень сложно найти работу мы и так все это знаем я планировал у себя на проекты использовать такие технологии как
00:00:02 - 00:01:26
typescript реакторе dax граф ql там всякие линкоры и так далее то есть все самые актуальные инструменты когда я понял что у меня есть возможность взять взять на проект по ручку начинающих разработчиков и решил весь этот процесс от начала до конца организовать так чтобы он был максимально похоже на реальную коммерческую разработку имеется ввиду провести с и без дать фидбэк потом там надо нанять на работу затем когда они начинают работать перед тем как начать работу они получают необходимые инструкции или начала работы
00:00:44 - 00:02:08
будут работать в команде будет git pull request и коды review доска задач возможно что-то забыл на в целом таким образом и в самом собеседование собрал некоторые базовые имеется для самого собеседования собрал некоторые базовые вопросы по generic и постарался его провести больше так сказать в духе беседа нежели строго вопрос ответа чтобы со беседуем и мог себя чувствовать комфортно и спокойно отвечать на вопросы помимо вопросов была парочка задач тоже и я думаю что на этом все со вступлением и давать и двигаемся к самому с одессу
00:01:26 - 00:02:57
надеюсь что и вы для себя что-то полезное тоже сможете извлечь и желаю вам приятного просмотра и так у нас получается сегодня будет собеседование на позицию стажера фронтенд разработчика и прежде чем начать я хотел бы немножко услышать о тебе и имеется виду вообще общую эту информацию про образование если есть про опыт работы личное легко это коммерческие про какие технологии ты используешь и про последний проект тоже было бы неплохо тоже рассказать меня зовут бусин мне 20 лет и я учусь на третьем курсе в дэгу
00:02:12 - 00:04:01
контент разработку это зовут к не заинтересовался интересуюсь около года за это время получил такие навыки как css javascript базовые знания реакции немножко typescript период в качестве последнего проекте я разрабатывал интернет магазин с редакциям и так хорошо редактор бисквитную и react имеется да да это как я как понял это как личный проект от проекта хорошо понял я тогда сейчас расскажу немножко про проект свой и в общем он из себя представляет такую платформу для обучения в которых две роли до студенты преподаватель
00:03:08 - 00:05:03
и предназначена она для того чтобы например преподаватели могли там какие-то задачи ставятся материалы выкладывайте чтобы студенты могли решать эти задачи там просматривать материалы они по задачи будут получать какие-то свои баллы оценки по этим баллами оценкам будет строиться какой-то аналитика там статистика чтобы в итоге там была какая-то история и наглядно было видно там к как они успевают то есть немножко жизнь преподавателю чтобы облегчить и чтобы было был такой была такая единая площадка где
00:04:11 - 00:05:28
студенты и преподаватели могли быстро с друг с другом взаимодействуют чтобы исключить никак не которую ручную работу чтобы вот эти все задачи можно было автомате автоматизировать есть задачи например вот эти которые сейчас тебе перечислю который мы будем сейчас решать если все успешно сложится это будет еще дополнительные задачи это платформа вода развиваться вот и основными технологиями которые мы будем использовать это конечно же react typescript понятное дело еще ридак споют какие то сопутствующие там христу инструменту
00:04:50 - 00:06:06
типа там линкоров там еще что то будет граф ql тоже планируется внедрять вот так в общих чертах вот информация такая и еще насчет команды команды и я забыл сказать изначально что это не проект который планируется сразу же кидать в продакшн это mvp это такая вырезано минимальная версия проекта почему так потому что мы сперва хотим пощупать посмотреть сделать какую-то минимальную версию в итоге ее как так продемонстрировать и в итоге понять где есть ошибки где где есть что то что можно там переделать или там создать
00:05:29 - 00:07:03
реализовывать исправить в общем просто есть задачи вещи которые мы пока не знаем как делать есть задача которую мы пока что будем решать предварительно и знаем до в общем просто есть много чего непонятного пока поэтому это такое mtp вот они какой-то полноценный большой проект вот хорошо так в принципе по если у тебя есть какие-то вопросы по тому что той информации что тебе сказал ты можешь задать мне тогда в принципе тогда давай приступим к технической части как я и сказал у нас мы пройдемся по java script и react
00:06:17 - 00:07:49
каких то просто по вёрстке и стилем не будет css давай начнем тогда с чего скрипта самого простого перечисли пожалуйста какие типы данных есть в javascript намбер string булевые значения потом и онлайн это примитивный и еще есть он будет еще есть объект еще один из тип связан с гигант bigint но функцию то тоже сказал тоже к весьма проверим topic type of function to может выйти faction весь не ошибаюсь это зависит от среды где выполняется java script но если под браузер висим опишем type of function там выйдет фанкшн ну это тоже
00:07:06 - 00:08:50
объект понятное дело хорошо так теперь знаешь ли ты разницу между нал и on the faint на это мы можем передать в качестве значения infant например можем получить когда мы обращайтесь обращаемся к созданной переменной но не передали в эту переменную какое-либо значение принципе правильно ты имеешь ввиду что нал это имеется ввиду и значение есть но на пустое ondemand когда например значения не определено принципе правильно то если мы напишем type of нал что будет [музыка] ужас как те type of ноулз
00:07:58 - 00:09:41
any type of на это объект это это что я забыла ли мы что не знаешь это ошибка считается истории исторически ставишь считается ошибкой и исправляют потом почему потому что ну как бы огромное количество проектов разработанного только там чё сломается вот этой так и осталась вот но в types to песка или typescript те конечно type of на вот она а вот хорошо давай тогда поговорим про лет war & kunst для чего они используются и в чем их отличия они используются для того что делить переменной раньше использовали только work
00:08:54 - 00:10:25
москве появились в таком их главное отличие заключается в том что у or глобальные область видимости au lait ekans точно так же как при объявлении бью мина с помощью кон свои значения изменять не мужик с помощью ли товар можем [музыка] значение изменять это как имеется присваивать ну а переписывать а если объект и если объект или массив нужно хорошо получается ты сказал war глобальной область видимости а у других блоки надо в какой области видимости war то есть мы есть область видимости в которой мы объявляем war и снаружи он не
00:09:43 - 00:11:22
виден ты знаешь мне такое то есть например мы самовар объявим каком-то цикле for the снаружи виде надо например а где мы можем объявить war и снаружи его не будет видно не знаю функция функция до внутри функции себе являем переменную вот там ворчат и что то то то то она будет видна только в этой до области хорошо так раз мы уже поговорили про объект так я тебе скидывал ссылка на песочницу я сюда ставлю код ты мне просто скажи что будет в консоли ну мне кажется что и там и там выведется единица единица да так давай тогда
00:10:35 - 00:12:29
знаешь как смотреть объявляем пустой объекта записываем в потом cnd файл добавляем свойство к объекту b1 потом в c мы записываем объект б это что это значит и в c и b будет один и тот же объект или это уже 2 разные объект будет ссылка на объект б а а тогда смотри теперь на 9 строке что происходит мы меняем свойство без единицы на 2 так теперь тогда в один и в консоли что я тогда и и данных там будет двойка да правильно [музыка] понятно что ну сочную типа данных и чтобы мы могли сделать копию объекта бвс
00:12:09 - 00:13:52
что мы можем использовать вниз можно использовать оператор спред оператор спрайт хорошо а этот оператор как копирует объект на каком он не копирует гул более глубоко копирую только верхний уровень хорошо а если мы подумаем сможешь ли ты назвать какие-то способы при помощи которых можно скопировать объекта глубоко можно тупо перебором сделать можно досуха я знаю с помощью джейсон стрингов а и потом пополз а ну есть такой способ тоже знаешь ли ты в чем минус этого способа с помощью часов да нет вот например есть давай тебе даже
00:13:01 - 00:14:52
подсказку такой да вот например объекта вот свойства а1 и я хочу объявить например какой-то метод здесь до скажем вот 123 если я сделаю стринги фай этого объекта то что что здесь функций вот функция просто будет исключена из через он строки краски вот ее то есть минус до при копируем то что вот в через он функция как бы не хранятся метода и вот поэтому надо быть с этим осторожным ну ещё я дополню что есть какие-то сторонние библиотеки да вот например лодок при помощи которой как раз таки можно там и там есть я не помню
00:14:00 - 00:15:36
как он назывался есть метод который позволяет скопировать глубоко объект хорошо так раз уж мы поговорили про объекты сможешь ли ты рассказать что такое контекст вообще в рамках этого скрипта contests можно назвать с помощью зыс то есть мы обращаемся к той или иной перемены в объективе функции в которой мы используем ему то есть за зависимости от контекста да правильно но непременно о свойства и обычно не обычно используются это именно чтобы в методах из методов получить доступ к сторонним не сторонним а из метода вот
00:15:00 - 00:16:35
объекте например который объявил то тут есть например метод фанк то какой то и если я хочу из этого метода получить доступ к свойствам этого объекта то как раз таки я тут на извоз и зис да и название получается а если мы внутри с другого свойства попытаемся через получить доступ к еще какого-то свойства то так работать не будет и это как раз и предназначен а вот именно чтобы работать вот таким вот образом хорошо знаешь ли ты способы как можно менять контекст объекта то есть передавать его другой то есть
00:15:50 - 00:17:19
есть функция до функция вот это фанк она сейчас вот например консоль блок из ада например она выводит это еще за комментируя сейчас получается эта функция в метод faq вот видишь обжиг . фанк оно вызывается в контексте отжиг тогда получается та та вот и раз таки проблема у нас вот видишь функция оно вызывается контексте объекта вот это общем у него через контекст из является вот этот опция а я хочу вызвать эту же функцию но получается уже ну какую-то функцию но уже в контексте другого объекта например ни
00:16:36 - 00:18:29
товару поменять контекст мы можем использовать боинг лаек и на передачу же объект контекст которую мы хотим использовать эти функции да все правильно а можешь сказать в принципе они байт колы up live да для этого применяется но в чем чуть-чуть они друг от друга отличаются боинг он хотел лишь одну функцию да то есть сразу не вызывает а apple apple iphone они принимают аргументы кока-колы принимается через ты в качестве масел все правильно хорошо так еще один момент как изменить контекст так знаю что такое
00:17:48 - 00:19:36
поднятие хостинг или не слышал не слышал лишь возможно это механизм такой получается когда у нас когда выполняем код java script переменные объявлены через бар и функции объявлены старым способом при помощи да вот faction declaration эти объявления у нас поднимаются как раз таки брал благодаря этому функция объявлена вот таким вот образом до ее можно вызвать перед тем как мы ее используем точнее перед тем как мы ее использовать перед тем как мы ее объявили да вот вот ну и понятно там мы объявили там
00:18:56 - 00:20:27
war через вордстат а вот использовать можем перед тем как мы объявили да ну конечно же не особо рекомендуются это использовать всегда хорошо лично мое мнение чтобы все было явно и ты там объявил и потом после этого использовал что что-то хочешь использовать хорошо хорошо так сможешь рассказать про разницу между фанкшн вот уже в дополнение до этому экспресс infarction declaration различие между ним и факс да ну нет ну хорошо там хорошо давай разница между стрелочной функции и вот эта функция главарь с что у ст и ваши функции нет
00:19:52 - 00:21:37
контекста и а берется откуда он к текст да я уже из-за родительского из глобальных одной из родительского да на уровень а а у этого фанкшн откуда берется контекст да уже из неё но изнутри получается если я сделаю консоль лак здесь что здесь будет пусто ничего не выведет на android а если просто сделать консоль лорды что вы видит здесь почему-то вот он define это сказал на обычно зависит от среды где ты вызываешь java script принципе данном браузере обычного водит этот выдал но может быть такое что здесь где-то use
00:20:49 - 00:23:00
strict засовывается еще в этот код когда мы засовываем strict да вот и когда мы пытаемся из этой функции получить жестоко краски будет отдыхает ну ладно хорошо так что ещё хотел сказать знаешь ли ты слышал про такую про такую функцию которая называется сама вызывающая ся еще еще есть вот такая вот аббревиатуру и и afi анонимная функция и сразу вызовет и да да сразу и вызываем сможешь написать простой пример ну либо дали бы стрелочные либо так тоже можно сможешь ли ты помнишь для чего бы это может использоваться или
00:22:12 - 00:23:59
не заполнять и придумать имена ну такое тоже может быть такое тоже может быть когда мы хотим например какой то фунт какой-то код скажем куда синхронную функцию там подать запрос на сервер и вызвать да сразу может быть такое тоже но раньше тоже использовалась когда чтобы создать просто локальную область видимости помнишь я тебе говорил что раньше когда все был она использовалась war использовался раньше и чтобы war чтобы не был виден снаружи только внутри функции как бы локализуется в этом там создают такую локально область
00:23:23 - 00:24:54
видимости до хорошо хорошо так так разницу между стрелочные стрелочные функцию когда мы ну вообще как бы я тебе изначально задал вопрос фанкшн express и фанкшн declaration имеется ввиду вот faction declaration вот оно как бы да вот эта функция через function потом название да вот таким старым способом function expression это что получается это когда мы объявляем в любом деревянную базовым функциям да да и до отличие в том что как бы там и эту функцию как эти говорил да можем использовать до объявления от у
00:24:08 - 00:25:39
только после но и свои специфичные отличие этом случае со стрелочной функцию конечно там тоже есть например насчет зыс вот хорошо [музыка] так знаешь ты про вот аргумент съесть массив которым можно использовать функции что это такое слышал но не здесь не использовал да хорошо давай тогда такой вопрос на примере есть у тебя стрелочная функция стрелочная функция и ты хочешь иметь на руках какой-то массив который будет хранить динамич которые будут хранить в себе не определенный список переменных параметров которые мы передаём в эту
00:24:54 - 00:26:38
функцию как можно это использовать с помощью по моему с помощью риса пират да по с помощью rest оператор это можно использовать например а как можешь пример какой нибудь написать например повесишь есть какие-то а и b два параметра до который точно задаются еще оставляю все как бы не определено точно мы не знаем так то есть это всегда задаем в конце от самого слова рез это остаток да получается и хорошо и там будет у нас вот этот массив так ну поговорили про rest расскажешь про спред тоже то его упомянул начали
00:25:50 - 00:27:27
тоже вас поэтому его можно просто копировать за объекты и массивы копировать объекты массивы а так что я хотел сказать когда мы копируем объекте массив в каком из случаев порядок важен [музыка] например порядок важен массиве или в объекте масию вот когда да то есть когда мы копируем легче когда мы используем массив понятно что мы должный порядок тоже учитывать а в объекте почему порядок не важен потому что есть ключ и значение хорошо хорошо так отлично так давай про метода массива поговорим что такое какие они есть
00:26:46 - 00:28:24
методы максимуму которые я использовал это наибольших резистором сетап сидит и в flash mob filter for и что в чем отличие между фаре чем ap впрочем ммм возвращать новый массив оформить изменять даже предыдущий вот вот в этом случае нет for each лакокраски абсолютно ничего не изменяет вот вот если у нас будет вот давай так смотрим есть у меня например вот это скроем есть у меня например массив я его сейчас прогоню через for и что там создам новую переменную new app for each вот и там я вот так вернуть и по вот этот надо отсюда как и
00:27:43 - 00:29:44
через foreach и если я выведу вот этот new or что будет в консоли 1 давай даже сделаю вот два варианта new or 1 через мап дай мы вообще нет а foreach нет да то есть вводит ondemand foreach тебе ничего не вернет получается и в таком случае в каких кейсах таких случаях лучше использовать мапо лучше использовать foreach [музыка] сейчас сказать ты можешь просто пример привести как бы ты использовал не шкаф обещали нам надо ну если на лапками нужно изменить копыт массив или это его использовать мы будем исходить
00:28:48 - 00:30:37
из и просто [музыка] вот вот смотри чаще сделаю вот то есть просто чтобы поэтому массиву пробежаться до навесить какие-то обработчики событий до вот такого таком случае можно моей использовать foreach вот какой-нибудь из этих способов изначально массив мутирует изменяет он у меня вот этот or изначально будет мутировать меняться ну да правильно вот тут например пример но носи возвращается да у нас важно помнить то что все эти методы массивов но flare что понятно он с этим изначально массивом ничего не делает остальные типом об
00:30:02 - 00:31:54
фильтр они делают копии только первого уровня хорошо [музыка] это фильтр тоже использовал да да так сдавать тогда тебе такой пример будет час и 6 скопирую сюда вставлю скажи пожалуйста что будет в консоли подсказывают 135 а почему потому что нам делить на два возвращается немцы ну 0 возвращает остаток 0 0 это фолз поэтому все четные не пройдут проверку а если я хочу именно четные что надо сделать как то исправить можно слышать использовать слышат эти с отрицание да можно отрицание принципе правильно можно еще типа
00:30:57 - 00:32:57
вот так сделать да да хорошо так давай тогда поговорим про вообще клиент-серверное взаимодействие провести теперь расскажи какие есть в общем основные эти методы которые мы можем использовать запросы основные do get past but i делить ну да основные и что они делают дедпул получаем данные пустные к какие-то данные загружаем but изменяем и делим кусок из бундока хорошо так ну помимо этого еще есть и другие методы типа общем съесть head есть патч но те которые ты назвал такие основные да и я сам их основном
00:32:06 - 00:34:02
использую хорошо так а какие-то инструменты используют для того чтобы например взаимодействовать с сервером что-то туда получить что-то туда закинуть какие-то записи да а синклит и фэй запуск секреты форекс хорошо и раз мы говорим про ясен говорит давай тогда не оси кого и начали вот что такое promise знаешь вами стоимость это объект который содержит себе релизов эффект и так же вроде pending резон reject это два метода которую мы как раз таки используем и самого call back a promise а вытаскиваем чтобы
00:33:10 - 00:34:59
обработать вас цена ряде успешно другой неуспешный да вот провальной а то что ты говоришь pending это уже про стадии статусы в которых сам promise прибывает вот и сказал 1-пентен еще два остальных какие есть индивиды когда идет загрузка да а два остальных вот то же самое да это уже 3 статуса а два первых который там не назвал это уже два метода которую 22 ккал б когда вот который мы используем хорошо resort и reject мы их взяли и мы их можем вызвать потому что эту функцию и мы можем в них что-то передать
00:34:08 - 00:35:39
что-то передать внутрь да нет то есть я имею ввиду ты можешь мне простой какой-нибудь promise написать или или если ты не помощь я напишу вот promise you promise призов reject вот тот из зол и reject это функции значит и я смогу вызвать вырезал вызывается мы вызываем когда ожидаем что вот что успешно будет а reject когда будет ошибка да вот в эти скобки в качестве параметры что можно передать он callback насколько ну в принципе все что угодно какие то обычно вызовов мы например приду им какие-то данные
00:34:59 - 00:36:37
например сервера мы получили какие-то данные и вот как раз в этот рисовым и засовываем их да и когда потом мы этот promise будем использовать вот в зэн как раз таки будет то что будет вот вот тут да а в reject ошибка да то есть которым потом можем через кач вытащить через качу вот хорошо а так ты можешь сказать до того как были внедрены promise ой вот как например есть задача у нас 33 асинхронных запросы на сервер и каждый последующий зависит от предыдущего и как как с этим работали сейчас понятно мы можем promise
00:35:52 - 00:37:27
использовать до какую-то цепочка выстроить и как бы все это неудобно читаться там все хорошо раньше какая как с этим боролись я точно не помню возможным простыми кубиками да то есть когда то есть я имею ввиду то что одна синхронная операция закончилась мы ждем пока она закончится и после этого должна 2 к начаться пока она не закончится как бы 2 не должна да и поэтому завершение callback а означает то что вот эта операция определенная да вот примерно синхронно и она завершилась вот и когда оно завершилось в этот call
00:36:43 - 00:38:15
back мы вкладываем другой в колбе который там запустится просто как вот тот завершится и вот вот такой вот а вот этот ужасный этих call back of которые которые вот очень сложно читать это как раз таки и называют вот таким вот образом бег от кубиков и эту проблему как раз таки promise и решает хорошего еще одно преимущество есть ты можешь например я подсказку да вот этот кетч вот как как он работает он перехватывает да и надо для каждого за отдельный конечно делать или один хватает небу низших и сами уже бруса потом один к
00:37:29 - 00:39:17
читателю вот это как раз таки еще одна проблема которая была в колбах hell где для каждого случая вот это вокал beck а надо было вручную вот писать вот эти if i iv ошибка вот выбрать ошибку до для каждого вот этого надо было писать его тут получается у нас вот так то все удобно хорошо так ты упомянула sequence давай рассказываешь тогда что это такое sing with me используем при до сих пор операциях и вызове функции зачал объявляем и асинхронный а потом к нам нужно выжить мы пишем bride сенькова и то есть это
00:38:22 - 00:39:58
weight смотри вот этот asic понятно это ключевое слово которое мы добавляем к функции не значит что три эту функцию мы можем использовать a way to do a weight мы можем использовать конкретно для чего для лет для каких как тебе даже правильно сказать например есть строка да если я использую там объявлю функцию оси и там где-то вот weight стр напишу будет ли это иметь какой-то быть используем пока она уже подождать пока правая часть выполнится ага и что в этой правой части должно быть раз таки да
00:39:20 - 00:40:51
вот тема которому да да щас отрезав ну имеется ду promise пропись должен завершиться до white работает только с тем что как ты сказал правильно должен бы да вот он должен подождать это должно завершиться как раз таки promise вот давай тогда одну задачу попробуешь еще последнюю решить сможешь переписать вот вот этот код используя снега white как так ну и еще надо вернуть этот джейсон потому что нам надо это вытащить ну это ты 2 возвращаешь да то отлично отлично даже страйки я это же не про сил троевич отлично хорошо
00:40:05 - 00:41:53
так давай тогда этот javascript последний вопрос local storage in store cookies блок стульчик cookies и главное различие в том количестве памяти до даты и то есть есть в где больше богу сунуть ага [музыка] давай так между вот fashion store жил около 100 раз провод между ними разницы расскажи а совершенствовать данный теряюсь пусть уровне закрываем грозы вкладку браузера банят но вклад области остается поставить [музыка] видны или эти данные каким-то сторонним лицам которые мы хранил около 2 через s
00:42:11 - 00:43:58
6 edge and limited узлов пользователю то есть какие-то локальные дотан и получаются браузера хорошо в cookies есть такая проблема была виден другим даже их мы что их могут какие то эти сторонние сторонние какие-то инструменты еще что-то читать эти данные помимо того что хранятся на браузере могут то это замечал что придает крышки это сайт там какие-то сайты там бывает написано что-то принять cookies прижимаюсь да вот тогда месть такое тоже что некоторая информация которая хранится в куках она еще может читаться может
00:43:18 - 00:44:47
отправляться там грубо говоря там на сервер какой-то да вот и они они могут эту информацию обрабатывать но я сам честно скажу cookies практически никогда не использовал и всегда использовал work локальное хранилище ну конечно же мне нравится в q карта что если есть какой-то talking который тебе надо хранить ты можешь задать время и через это время в куклами до конца сама запись очиститься как водовода около стоит что-то как-то надо уже там что-то дописывать так но и в local storage хранятся данные
00:44:06 - 00:45:27
в каком формате джейсон usage and cookies парят это все с строка у нас получается хранится отлично отлично в принципе по java script все я больше вопросов нету давай быстренько пройдемся по react и все давай тогда расскажу что такое react и для чего он используется реакций библиотека для создания вы выбравшись [музыка] ну ты можешь товаре акта тогда точнее будет сказать это библиотека который использовали создание полюс их интерфейс он не только применяется в пищу мобильной разработки тоже применяются
00:44:46 - 00:46:13
хорошо какие преимущества у него есть это синглы катя блики чем то есть она не будет а 0 теперь переходим какие-то вклады странице потом [музыка] наличие виртуальный дом дерево потом вот этот еще подсказку дам разметка похожие на html джейс x и подход договоре абонент оба судна на компонентном подхода это основные основные преимущества хорошо gsx получается джей секс мы можем это похожего на html можем ли мы использовать в рамках через x java script код данным greenwich [музыка] я имею ввиду внутри
00:45:36 - 00:47:30
самого g из x мы как можем javascript писать вот ритер там у тех же секс и внутри gsx как ты можешь писать сам же сам не используя тему кейс или не вот я имею ввиду 5g секс фигурных скобках до фигурных скобках фигурных скобках мы можем дописать скрипку от которым внутри секс и [музыка] что не допускается там писать вот так давай фигурных скобках до внутри для вас gsx какой код java script мы не можем использовать кейн примеры из решилась на за использовать объявление книги 100 переменных тоже [музыка]
00:46:41 - 00:48:28
ну в общем как это выглядит а давай скажи вот такой вот куда мы не можем использовать о какой можем например использовать разве которые что у него возвращает да правильно то есть какие-то java script и выражения которые что приводится в итоге какому-то значению мы можем использовать g секс какие-то инструкции по forev там всяких и fafda мы не можем правильно так что такое виртуальный дом можно сказать дерево он копирует реальный дом дерево и уже свет в каком участке года произошло изменение и затем только и туча секунд года он
00:47:35 - 00:49:07
перед а с точки зрения начала скрипта из себя что представляет виртуальный дом эти какой тип данных это виртуальный дом хранится в какое-то скажем грубо говоря переменное что лишь какое-то всегда на что это там строка массив число объект что это такое как ты думаешь представим что вот представь дерево с узлами что какой-то тип данных можно лак объект да это объект это [музыка] виртуальный дом это копия легковесная реального дома браузер это вот и пути почему мы то это используется почему нельзя напрямую использовать
00:48:25 - 00:50:02
браузеры дом ну чтобы не перевернулась все обновлялся какой-то определенный участок имеется ввиду что операции с реальным дома не тяжелые поэтому легче использовать легче все это делает внутри java script а потом если что-то уже на самом деле изменилось это уже вот вставлять его сам реальный дом хорошо что такое стоит и props pack света аргументы которые мы к этому начальник компонент стыд это уже данные к другу впоследствии изменяться этих компонентах хорошего можем ли мы как как надо изменять
00:49:18 - 00:50:54
состояние например есть грубо говоря давайте еще здесь напишу такой пример const аккаунт сетка он такой-то хочу увеличить иона и не сюда вот как я обычно это делается своими словами скажи сетка unkown президент а если я сделаю просто каунт плюс равно 1 он не будет изменять да не будет можешь примерно догадаться почему потому что он будет брать ты можешь просто сказать что это противоречит работу на рынок не не можем изменить до напрямую нельзя поэтому эта функция нам как раз таки нужно да вот я
00:50:14 - 00:51:51
хотел как раз про you стоит спросить ее стоит возвращает у нас получается что что возвращает ее что это значение функции в чем они находятся видишь носили так что такое из эффект используется язык используется для того чтобы выделить какой-то участок кода при загрузке когда кришна заботится догадок обычно что мы можем использовать эффект запросы на селе потом там еще мы указываем массив зависимостей и для чего москве зависимости до что прибыль при изменении этого массива будет обратно вызываться дефект
00:51:08 - 00:53:03
то есть когда если даже что-то одно из элементов этого массива изменится и из эффектно заново сработает тесты пример привел пример что можно использовать какие-то запросы на сервер и из эффект еще можешь привести какие-нибудь примеры что мы можем и из эффекта использовать помимо этому вопросу обновления каких-то данных смотри какие есть вообще из эффект украинского по названиям и мы используем это побочный эффект на побочные эффекты это что своими словами как ты можешь понять побочные эффекты вот есть ты одну штуку назвал это там
00:52:06 - 00:53:26
какие-то запросы на сервер до прочно эффекта еще что может быть кори базовую загрузка без ли вообще упростить да вот и побочный эффект это что то да вот что мы пишем но напрямую мы вернуть например из какую-то функцию не можем то есть это не какие то конкретное значение это какие-то инструкции это может быть работа с дом вот эти всякий каире селекторы туда-сюда это может быть то что ты сказал какие-то синхронные операции подаче запроса на сервер еще таймеры в обед я месяце тайм-аут интервал какие-то консоль ноги alert и
00:52:55 - 00:54:23
там вот это все это все побочные эффекты на если тебе нужно запустить какой-то таймер в рамках react от и конечно же его запускаешь из эффект вот визу секте ты сказал есть массив зависимости а если надо и к как можно работать решать проблему утечек памяти в эффект например из таймера бил и ты хочешь чтобы он исчез когда компонент удалиться из дома мы делаем да правильно правильно почему если я объявлю какой-то таймер он у меня запустился сет интервал приставы запустился уже бесконечно идет если я
00:53:43 - 00:55:29
его не очищу и когда компонент ударился и скажу какая то modal когда ее показал кнопку нажал скрылся компонент еще а этот таймер все еще будут работать если мы это очищать не будем так давай как ты работаешь с песками с какой-то список данных надо отобразить в разметке да лучший секс что используется [музыка] хорошо там есть такие ключи ки на ней для чего ну чтоб уникальный ключ у каждого списка чтоб не было проблем с виртуальным деревом а если в качестве ключа использую яндекс его нельзя использовать насколько просто
00:54:38 - 00:56:25
когда можно использовать здесь не знаю что массив не будет изменяться правильно если будет статичен алло да да если получаем там если использовать какой-то статичный массив то можно там использовать ключи но если сайте конечно же лучше запихнуть а людей уникальные пару последних вопросов и мы уже за как вы закончим управляемые неуправляемые компоненты управляем но это обычно когда мы работаем с формами часа с импортными управляемые компоненты это когда мы используем state для работы с винтом неуправляемые это когда мы используем
00:55:31 - 00:57:01
рифы когда мы не можем изменять ради but понял то есть значение в первом случае мы вытаскиваем из этого им по то через состояние во втором слоге через рев да получается хорошо а ты знаешь помимо you stay ты из эффект и какие то другие хуки вообще скажи что такое хук своими снами что это это какая зарезервированные функция мы вызываем уже в компоненте и какие еще какие ты знаешь из контекст и узрев изведешь искал всю смену да нормально я не буду спрашивать про вот эти оптимизацией мы туда сюда этот
00:56:21 - 00:58:14
средний вопрос работал ли ты с ридак так что это такое и для чего ты используешь его это глобальное хранилище куда мы можем передавать state день где мы используем какие-то стейки чтобы не передавать у нас есть у родителей и он нам нужен там на пятом уровне вложенности в компоненте чтобы не перейти давай через каждый компонент мы можем использовать умные dax редокс для глобального хранения данных а можешь своими словами рассказать как работает поток данных вот между редакции компонентом откуда вообще расскажи как
00:57:18 - 00:58:57
можно изменить состояние в редакции стайлинг сначала мы объявляем состоянии потом пишем reduce выше функции который будет изменять этот перед состоянии а тем в компоненте где мы используем это состояние мы используем селектор с помощью которую мы уже вызываем состояние и так сохранишь и зачем с помощью если нам нужно изменить это станет а мы вызываем лидер с помощью dispacci и уже это dice пачку используем там нужно изменить то есть составе мы напрямую не меняем только через какое-то действие dispatch
00:58:08 - 00:59:37
на котором иди спать так хорошо помимо этого редакция еще какой-нибудь способ знаешь которые как раз таки позволяет бороться с прокидываем скандик юз контекст так ну в принципе у меня больше вопросов лет по редакторе акт у тебя все отлично мы прошлись по базам для вас крипто тоже единственная я скажу что вот надо почитать про хостинг надо будет просмотреть еще разницу между стрелочными и обычными функциями почитать про аргумент потому что это все спрашивают на собеседованиях но вообще как бы еще раз прочитать разницу ты так
00:58:56 - 01:00:37
то там все правильно сказал насчет зыс это все надо еще нам еще какие то есть моменты просто методы массивов ты сказал что for each map фильтр использовал там еще их намного больше не даже почитай reader edius например да вот который тоже очень часто используются и другие тоже promise и надо почитать про миссы на практически каждом собеседование спрашивают про promise и а сегава это очень отлично написал страйки чужие никаких вопросов нет асенька white это то что вот как раз таки возникло на основе promise of поэтому надо как
00:59:49 - 01:01:02
монтаже знать вот в принципе все во всем остальном мне все понравилось все отлично если у тебя какие-то вопросы есть насчет проекта на счет команды на счет задач еще чего-то ты можешь у меня спросить вот а если нет в принципе вот такой у меня фидбэк был называл что тебе надо подтянуть почитать остальное тебя все было нормально пока вопрос них нет тогда на этом я думаю все тебе спасибо что пришел на интервью и о силе и и удачи спасибо итак на этом собеседование подошло концу это как я говорю мой первый случай
01:00:25 - 01:02:16
кого-то собеседовать подписывайтесь на канал чтобы ничего не пропустить если вам понравился данный формат то поддержите меня лайком поделитесь своим мнением в комментариях а также если у кого-то есть возможность поддержать канал рублем то кошелек яндекс я оставлю в описании к видео я думаю что на этом все и можно закругляться всем спасибо за просмотр и уже увидимся в следующих видео
01:01:22 - 01:02:22