Собеседование JUNIOR FRONTEND REACT разработчика

Подготовка к собеседованию на Frontend Developer

Транскрипция видео:

  • привет друзья и перед началом ролика небольшой дисклеймер я не пытаюсь ответить на вопросы быстрее со беседуем ago короткие паузы между вопросом и ответом это результат монтажа я уважаю ваше время и не хочу чтобы вы тратили его на паузы и на раздумья со беседуем а во всем привет сегодня у нас очередное собеседование со беседуем фронтенд разработчика татьяны татьяна пожалуйста представься расскажу о себе ну как уже кинув сказал меня зовут татьяна я работаю фронтенд разработчика ну примерно чуть больше двух лет

    00:00:00 - 00:01:17

  • основной стаккато реактор скрипт новости менеджеры сейчас моб x на проекте на текущем отлично тогда давай сразу перейдем к техническому собеседованию десна обговорю теоретических вопросов будет достаточно мало потому что они уже настолько все заезженные и собеседования в собеседования одно и тоже и я постарался подготовить такие вопросы которые его больше на решение задач или какое-то практическое применение имеют хорошо несколько вопросов будут разогревочных а потом перейдём уже вот потому что сказал

    00:00:36 - 00:01:51

  • итак первый вопрос в чем отличие от антифа int но прежде всего в том что это разные типы даже то есть нал это объект антифа свой отдельный тип данных вот и собственно налом он означает что значение есть и оно равно нал антифа это означает что переменная не определена и что значение нету и десна все правильно единственно поправлю что на ул тоже примитив просто исторически так сложилось что если проверять его через type of the покажут что это объект и это старый-старый косяк который не поправили для того чтобы кот не сломался то что

    00:01:17 - 00:02:54

  • уже написан тогда второй вопрос если вот тебя например есть какой-нибудь объект и у него есть поле этот объект приходит с бэг-энда и это поле может проинициализирована быть либо объектом либо массивом и в зависимости от того какой что там находится или объект или массив нам надо сделать это разного какие-то разные операции разная логика будет и вот как бы ты проверила что у тебя это поле является в массивом насколько я помню есть массива специализированный метод проверки и зарей да на все верно

    00:02:06 - 00:03:12

  • тогда следующий вопрос тоже такое абстрактное что такое дом дерево и для чего оно в принципе нам нужен дом дерево это это граф который описывает структуру html-документа то есть вложенность элементов структуру элементов как они соотносятся между собой как они ну вложено друг друга чем это отличается тогда от html-документа но для чего нам вообще дом дерево в принципе нужно долго жду она позволяет выстраивать структуру документа но структуру документа мы же выстраиваем ваш темой но дом дерево также позволяет манипулировать ему

    00:02:40 - 00:04:15

  • элементы мечи зала скриптом но да собственно это я и хотела услышать тогда следующий вопрос какие способы хранения данных браузере ты знаешь можно хранить данные в руках можно хранить данные в лука сторож [музыка] можно хранить данные сессиях вот в чем отличие между около 100 ручки сессиями local storage а он будет сохранятся после того как браузер пользователь закрывает браузер а здесь и они стираются каждый раз когда пользуйтесь закрывать браузер а в чем тогда отличия между local storage & cookies

    00:03:27 - 00:04:54

  • я думаю что отличие в значениях в размере я данных которых можно хранить насколько помню cookies они хранят очень ограниченные по размеру данные и муки они привязаны к конкретному сайту около 100 раз наверное можно хранить данные которые могут между разными сайтами шарится но не на самом деле local storage также привязан конкретному домену но еще у cookies есть важная особенность может скажешь а время жизни до во-первых время жизни мы можем его устанавливать сами а во вторых еще то что с каждым запросом на сервер у нас

    00:04:09 - 00:05:34

  • эти cookies отправляются автоматически и сервер может эти cookies также перезаписывать поняла ну плюс скуки там еще есть важные особенности с безопасностью но это уже другая история давай сейчас откроем сэндбокс который java скриптов до открыла и первая такая простенькая задачка у нас есть один объект и у него есть поле например name есть второй объект который мы присваиваем 1 объект если мы сейчас перезапишем 1 объект например сделаем вот так того что у нас будет полина им у второго объекта она так как объекты являются ссылочными

    00:04:53 - 00:06:25

  • типами и вот в этих перемен охраняться ссылки на объект это будет то же самое будет получается апдейт или убить или обегать давай проверим видим блоги мужик-2 право есть консоль получается у нас консоль вывелось в битве может попробуешь объяснить почему не обретет интересно щас а потому что во второй раз мы перезаписали весь объект один целиком когда мы присвоим ему новое значение вот если бы мы поменяли у него значение поля через точку объект один . назначили лады это тогда вы и у второго объекта тоже самое по обновилась но

    00:05:48 - 00:07:27

  • получается у нас отжиг 2 ссылается на то область памяти на которую ссылался изначально объект один и мы получается для объект пересоздания создали новую область памяти а обжиг 2 ссылается по-прежнему на старые ну да в принципе в принципе все правильно теперь давай поговорим про обработку ошибок у тебя есть например некий кусок кода и ты понимаешь что там потенциально может произойти какая-то ошибка как бы ты ее обработала обернула быть от букв от ракет и что у нас там происходит блоки троим и и пишем тут код

    00:06:39 - 00:07:49

  • который потенциально может который потенциально может произойти ошибка в логике чм и эту ошибку каким-то образом обрабатываем вводим в консоль или оказываем пользователь сейчас например очки посмотрим есть какая-то функция есть белок троевич и есть еще также файл или файл или у нас каком случае вызывается familie вызывается всегда независимо того удачно или неудачно произошло смотри такая ситуация у нас блок трой возвращает что-то например единичку блок catch у нас также возвращает двойку и файл или у нас возвращает тройку и

    00:07:14 - 00:08:47

  • например еще мы делаем здесь условия вызываем функцию рандом которая возвращает нам число от нуля до единицы если она например меньше либо равно 0 5 тонны пробрасываем ошибку получается таком случае вернет эта функция если мы ее вызовем тут вопрос такой хитрый потому что блок трой выполняется если не произошла ошибка по идее должно вернуться 1 вот тогда в таком случае от работает ли блок файл или да вот меня вот эти retour не тоже смущают потому что я не уверена что потому что если бы просто в блоке

    00:08:00 - 00:09:16

  • трои ну что-то выводили в консоль нам иметь то давай или мы бы дошли всегда а вот именно то что мы делаем breed урна с функцией я вот что-то сильно сомневаюсь что файл или он выполнит все таки в итоге давай проверим в консоль так это пока что только троечки лолита троечка она будет выводиться в любом случае потому что ну так устроена сама конструкция что последние отработан или темном в принципе возвращается то есть блок finally у нас отрабатывает в любом случае и функция получается возвращает именно троечку если тот ритм который в

    00:08:42 - 00:10:00

  • строю он даже и не учитывает и не sabbath не получается тогда они 1 тогда давай перейдем к первой задаче на практике порешаем в общем задача заключается в том чтобы написать функцию которая проверяет правильность последовательности скобок то есть у нас идут открывающиеся закрывающиеся скобки могут эти какие-то символы между ними и нам надо написать такую функцию которая проверит что для каждой открывающейся скобки есть закрывающаяся скобка у нас есть функция она принимает себя какую-то строку давай попробуем такую функцию

    00:09:23 - 00:10:37

  • реализовать пока что представим что у нас есть только круглые скобки квадратные фигурные покажу на них внимание не обращали да хорошо ну наверное наверное можно например написать массив соответствие этих скобок то есть круглые и квадратные вот эти фигурные и проходить по этой строке и проверяйте следующей ночи он должен быть именно вот из этой пары не пока фигурные квадратные не учитываем пока у нас есть только круглые и нам надо просто проверить есть ли для круглой открывающейся скобки круглая

    00:10:00 - 00:11:17

  • закрывающаяся то есть например ну вот вызываем функцию чек brackets им и питать передаем вот такую вот строку у нас 4 открывающейся скобки и 3 закрывающиеся в таком случае функция должна вернуть falls если же у нас еще 4 скобка появляется когда функция возвращает true причем скобки могут идти вот абсолютно в любом хаотичном порядке ну наверно можно объявить массив фигурной скобкой наверно можно быть а вот этой вот строке попробовать попробовать смотри давай давай подсказку да давай как минимум нам по этой строке

    00:10:43 - 00:12:08

  • явно в цикле надо пройтись чтобы как-то скобки проектироваться по ним и по проверить открывающаяся у нас скобка или закрывающаяся давайте этого начнем на вас делаем цикл внутри цикла по строке пройдем а на получается у нас по индексу мы можем получить отдельно взятую скобку и для удобства выведем ее в какую нибуть переменную чтобы читабельность получше было теперь мы можем получать какой-то элемент строки отдельно взяты и нам надо как-то проверить если у нас на каждую на каждую открывающуюся скобку какая-нибудь

    00:11:25 - 00:12:43

  • закрывающиеся то есть как минимум нам куда-то эти открывающиеся скобки надо сохранять новая дам тебе подсказку есть такая структура данных как стек знакома да вот и получается что логика такая пока мы и тренируемся и нам попадаются открывающиеся скобки мы добавляем их стык как только мы доходим до закрывающей скобки то есть нам надо делать условий проверять какая скобка у нас на текущие операции как только мы доходим до закрывающей скобки мы должны достать скобку из стека удалите и проверить вообще существует

    00:12:11 - 00:13:28

  • она там или нет то есть например смотри такая ситуация у нас идет 2 открывающиеся скобки мы добавили их стек и у нас затем идет три закрывающиеся скобки и получается мы добавили первую скобку в стык добавили вторую скобку в стык у нас сейчас стыке находятся две скобки потом мы дошли до закрывающиеся скобки мы одну скобку открывающиеся из т.к. удалили затем дошли до 2 скобки мы еще одно удалили а когда мы доходим 3 мы проверяем стейк на наличие скобки видим что открывающейся скобки нет значит у нас одна закрывающаяся скобка

    00:12:50 - 00:14:00

  • оказывается лишние то есть логика здесь такая и обратная ситуация когда у нас например открывающихся скобок больше чем закрывающихся мы получается в цикле по всем скобкам прошлись стык у нас по идее должен был очиститься поскольку мы каждый раз него скобку достаем но у нас по итогу после того как по циклу мы прошлись остается в стеке 1 скобка то есть на эту одну скобку у нас закрывающейся не нашлось значит тоже у нас функция передали неправильную строку вот такая вот такая логика объявим переменную для хранения т.к.

    00:13:25 - 00:14:45

  • вот и здесь добавим проверку что их следу рэйки но вот такой вот девочки мы ее стык у ш а если а если закрывающие из эко такая функция получается с вершины стека у нас достает что-то а об до крыма получается удаляем до удаляем но желательно это поместить еще в какую-то переменную функция папа нам возвращает элемент теперь путь это мы должны убедиться в том что функция поп нам не вернула define добавляем получается еще одно условие в котором надо проверить то есть если функция поп у нас отработала из тех был

    00:14:05 - 00:15:53

  • пустой то по идее нам должен вернуться отдыхает а это аналог из них и вот уже канал до самого конца дошли нигде не смотри вот случай как когда я сказал что у нас три открывающейся скобки и 1 получается нет наоборот когда у нас закрывающихся скобок больше то есть мы дошли вот например до 3 даже может может быть пять мы дошли до 3 проверяем если у нас что-то в стеке вызываем функцию поп а у нас так уже пустой потому что у нас открывающейся скобки закончились мы проверили одну закрывающуюся вытащили из стека

    00:15:08 - 00:16:14

  • проверили вторую закрывающуюся вытащили из стека и как дошли до 3 стек у нас уже пустой значит на эту закрывающуюся скобку у нас открывающийся нет и нам надо это как раз проверить она можно проверить сила но нет в принципе тебе функция поп в данном случае уже вернет нам если стек пустой тебе нужно просто проверить есть ли что-то не пустое ли у тебя last элемент как раз так то есть если last элемент у нас не пустой там и ну просто возвращаем false да получается отрицание добавим но и к лисе нет если не если у нас это условие они

    00:15:41 - 00:17:21

  • отработала то просто начинается следующая операция возвращать нам ничего не нужно если мы сделаем re-therm там то у нас функция цикл прекратится и функция вернет значение то есть мы на первой итерации уже закончим выполнение а то есть получается здесь после окончания цикла проверить что вот так пустой и тогда что-то если у нас степью что-то осталось мы возвращаем лишнее можно вот эту макаров покороче ну а написать для подписчиков еще раз объясню чтобы было понятно что кролик ищи познавательным получался то есть

    00:16:36 - 00:18:14

  • получается логика следующая мы элемент за элементом перебираем строку если у нас попадается левая скобка то есть открывающаяся мы ее добавляем стык стек эта структура данных в которой которая работает по принципу последним зашел первым ушел и получается мы интегрируем ся до тех пор пока не доходим до закрывающейся скобки как только мы до нее дошли мы из стека достаем открывающуюся скобку если там она есть значит все отлично мы нашли ну получается пару скобок но в случае если этой скобке там нет значит у нас и так

    00:17:28 - 00:18:36

  • уже пустой и 1 закрывающаяся скобка лишнее мы на этом функцию завершаем мы возвращаем falls если же мы по всему циклу прошлись и у нас нигде фолз не выбросился значит мы проверяем если у нас стек не пустой значит мы тоже возвращаем фолз значит у нас остались незакрытые скобки если же это условие не выполнилось значит у нас не выполнилось и это условие и значит у нас стык пустой при этом то есть получается что на каждую закрывающуюся скобку есть открывающаяся и функция возвращает трубка вот задачка

    00:18:01 - 00:19:04

  • она достаточно часто на собеседованиях встречается небольшое отступление если вам интересно видео в котором я буду решать какие-то интересные задачки на java script и делать это оптимальным способом то отпишитесь об этом в комментарии и тогда и такое видео вам запишу давай попробуем и немного усложнить и представим что у нас могут быть еще квадратные скобки и фигурные здесь принципе логика сохраняется абсолютно также главное правильно вот эти условия задач а раз могут быть еще другие скотт то сюда мы добавляем проверку

    00:18:33 - 00:19:49

  • что они могут быть еще и филе и вот но и к условию еще можно писать через array include не писать каждый раз вот эти равно но у нас здесь их всего три поэтому можно и так могут видеть как раз надо какой-то но написать какой-то соответствие то есть вот этих вот школа бог то есть но чтобы 1 ну проверяется соответствующие скобки а не просто по количеству их добавление выкидывать из наверно надо какой-нибудь я наверное мазь из нас тут лучше объект и пропишем у и соответствие между ребенком и получается вот здесь вот мы проверяем

    00:19:10 - 00:20:42

  • не просто что он есть последний элемент а что что вот этот вот текущий элемент он равен получается объект [музыка] антон не наверно на базу и грант что он н java bluetooth волос вот это случается немножко больше думаешь ругается на скобочку ну да да в принципе это правильное решение с объектом хорошее решение можно было также еще сделать q нибудь функцию которая принимает в себя левую и правую скобку и просто там тоже сопоставлять и давай тогда решим сейчас еще одну задачку убираем задача заключается в следующем есть какой-то

    00:20:20 - 00:22:08

  • массив и он состоит из чисел ну и не обязательно числа какие-то любые объекты числа примите его неважно и задача состоит в том чтобы написать такую функцию которая будет возвращать принимать в себя массив а возвращать массив без повторений то есть вот у нас единички повторяются значит мы их из массива исключаем тройка у нас встречается один раз значит мы его в результирующий массив добавляем пятерка у нас также в этом массиве встречается один раз значит мы ее добавляем и остается девятка то есть вот семерки у

    00:21:26 - 00:22:35

  • нас повторяются шестерки повторяются единички их мы сразу исключаем сперва тут еще я состоит в том чтобы избавиться от чисел которые дублируются на уджары скрипки есть достаточно новый метод сет который но позволяет позволит удалить все вот эти дубля структура данных а но смотри в таком случае у нас сет он позволяет хранить в себе уникальные какие-то значения у нас останутся единички и останутся шестерки просто они будут в единичном экземпляре а нам надо написать такую функцию которая полностью от дубликатов

    00:22:01 - 00:23:27

  • избавиться то есть останутся только те число которые пары не имеют например единички надо выкинуть оставить только сбойка тройку и пятерку пятерку и девятку да и идея растет на вход у нас массив приходит и на выходе у нас должен быть массив стройкой двойка с четверкой с девяткой такую функцию надо написать я бы наверное попробовать сделать через our readers давай пробовать но я думаю что надо два массива для хранения то есть мы проходим по массиву добавляем добавляем элемент например 1 в какой-то итоговый мой щит и в массив

    00:22:46 - 00:24:28

  • который у нас просто будут храниться какие-то значения потом мы проходим по массиву и ну вот с ответом и если мы встречаем какой-то массив какой-то элемент массива еще раз там и его из массива уникальных значений убираем и перенос и там при переносе могу ну вложив просит который проверки мы храним значение тогда можно попробовать сдать два массива который будет охране я просто хранение всех значений при проверке и второй массив король будет некое очень [музыка] и пройти омахе его но проходим в масел он скажет каждый

    00:23:43 - 00:25:40

  • элемент мы проверяем то есть могу подсказку дать ну давай подсказку но если хочешь еще подумать подумай ну через нормальное решение задачи с массивами по-другому не какал все через цикл но смотри давай тебе дам подсказку самый такой тупой способ это просто сделать два цикла ты в первом цикле получаешь какой-то элемент а во внутреннем цикле ты опять по массиву пробегаешь если ты элементы с первого цикла встречаешь еще раз то узнать что тебя он дублируется и ты получается его в массив уникальных значений не добавляешь если полностью по

    00:24:53 - 00:26:20

  • внутреннему циклу прошлась и не нашла такого значения больше кроме того что ты сейчас взяла с первого цикла и добавляешь массив уникальных значений ну то есть простаты в двух циклах сравниваешь числа если она повторяется у тебя больше чем один раз значит ты его не добавляешь можем вот это цикл прям скопировать менять счетчик сам давид клемент ну xu получить текущие элементы perazzi и я уже сказал вот ты например писать что мы сейчас на нулевом яндексе ты вот его получила в этом цикле во внутреннем цикле ты его идешь и по

    00:25:37 - 00:26:57

  • очереди сравниваешь со всеми числами и если у тебя он встречается больше чем один раз значит и его по итогу в массив не добавляешь то есть ты можешь сделать какой-нибудь счетчик каунт равен 0 то есть каждый раз когда у тебя внешний цикл первый цикл прокрутился у тебя он всегда будет нулём инициализироваться и ты во внутреннем цикле вот сравниваешь текущий элемент с элементом внутреннего цикла если вдруг у тебя совпадения если значение разных ты счетчик увеличилась и по итогу как когда ты из цикла

    00:26:20 - 00:27:28

  • внутреннего высшего ты просто проверяешь больше ли у тебя чем единица этот счетчик если он больше значит у тебя элемент встретился несколько раз но это такой тупой способ ну давай его реализуем он не то чтобы tube он просто самоочевидно а вот тогда так проверяем каждый раз как python если он проверяйте что если карен поэтому равен а мы делаем увеличивая счетчик и получается здесь после того как таких и больше но лучше наверное сделать напрямую если каунт равен единице то есть если у нас встретился элемент

    00:26:54 - 00:28:24

  • всего один раз тут тогда мы вода массив добавляем остается только вернуть проверить правильно ли она отработает не зал 3 и передадим туда массив у нас получилось правильно 235 89 но сложность у такого алгоритма получается ты знакома с оценкой сложности ну да у нас здесь получается 2 вложенных цикла и получается что у нас сложности n в квадрате что не есть хорошо и эту задачу точно можно решить более быстрым способом как минимум за о от n может подумаешь может будет какие-то предположения как можно сделать это без

    00:27:52 - 00:29:23

  • вложенного цикла но сейчас попробовать подумать так но получается тогда это все может можно до тогда попробуем какой-то эффект который будет историй от голым объект объект у нас будет играть роль словаря то есть в котором в качестве ключей будем хранить значение массива в качестве вот это значение мы будем хранить количество элементов которые а сколько количество раз кукла встретил массиве да давай попробуем так а давай тоже получим текущий элемент по индексу теперь получается нам в чему надо заносить

    00:28:49 - 00:30:35

  • значение если там что-то поэтому ключи уже есть значит просто это значение увеличиваем а если нет то нулем инициализируем окно можно проверить что если у нас по если у нас нету несколько если его нету там ее к единичками а каким из нынче увеличь уровень увеличь одна единичка натан а над около теперь получать и теперь вот из этого объекта нам нужно получить какие у которых много значения вот этого единичка да это можно сделать еще один цикл получим ключи объекта по ним про и тренируемся и посмотрим если поэтому ключи у нас

    00:29:50 - 00:31:33

  • единица то мы его добавим результирующий массив если нет то просто пропустим чтоб код по лаконичней был можем с помощью рич проектироваться по ключам да им то жду ваших вот тут уже не navara а ключ у дани объекты достаем кира жену и ничья уж вам точно получается ключ к ним да ну да вот сейчас сразу все обновить страницу функция от работает как надо для тех кто не совсем понимает для чего мы это сделали объясню что здесь у нас получается мы проходимся один раз в цикле сложность о от n то есть мы у нас

    00:31:02 - 00:32:30

  • нет вложенных циклов у нас линейная сложность затем мы опять проходимся в цикле но он не вложенные у нас получается у от 2n но константы обычно отбрасываются и сложность по итогу остается aten линейная сложность и такой код будет работать в разы быстрее особенности массив у нас там с тысяч из миллионов элементов так тогда с задачами по java script у все еще один меня вопросик будет знакома ли ты с функциями конструкторами я думаю что нет я с таким не сталкивалась но смотри задача заключается в том чтобы

    00:32:04 - 00:33:22

  • написать такую функцию которая параметрами у нас принимают name и возраст и по итогу мы должны уметь делать что-то такое передавать сюда какое-то имя и возраст и эта функция должна нам возвращать объект давай попробуем такое реализовать просто в том чтобы у нас вот здесь по итогу был объект с полями name ильич через прототип объекта добавить ему новые поляны image ну ты усложняешь если бы у тебя было обычная функция тебе надо было из нее вернуть объект как бы ты это сделала просто создала объекты virtual бы и он

    00:32:42 - 00:34:15

  • вносим и сейчас выведем влоги сительно создастся объект но тут вопрос был немного в другом нас ты не знаешь функцию тогда тебе вопросы задавать не буду поясню такая функция она не будет являться функции конструктором потому что если мы сейчас сделаем инстансов и проверим то влогах у нас будет фолз то есть функция нам возвращает объект но он никак не связан с этим use но если мы сделали вот так очень у нас проверка уже возвращает true то есть в данном случае юзер является экземпляром юзер какая функция она выступает уже в роли

    00:33:41 - 00:35:04

  • функции конструктора логично записи есть ли мы сделали класс users здесь объявили конструктор который принимает параметрами не имеешь таком случае если в мы сделали инстансов юзер у нас бы тоже вернулось true то есть этот объект является уже инстанциям юзера а объект который возвращался просто через ритер но это просто объект который не напрягало тогда давай перейдем к акту парочку таких общих вопросов потом будет одна задачка и на этом в принципе закончим на давай такой базовый вопрос что из себя представляют пропсы для чего

    00:34:33 - 00:35:44

  • они нам нужны про пса но можно считать что это аргументы функции которые мы передаём при вызове то есть параметры которые мы передаём в компонент сверху а в чем отличие от состояния состояние она хранится внутри компонента образцы они приходят из них не желательно менять внутри компонента так давай тогда поговорим про react фуке с какими react хуками тебе приходилось работать и зачем они нам в принципе нужны основной хукает you stay который позволяет добавлять функциональностей то функциональные

    00:35:09 - 00:36:48

  • компоненты и us эффекта который позволяет имитировать поведение компонент did want ее компонента about то есть управлять жизненным циклом да ну и некоторые другие дюп радио и из мама и не ее столбе который позволяет минимизировать некоторые значения что из себя представляют нормализацию канализация она работает по принципу сравнение ссылок а для чего нам эти ссылки сравнивать для того чтобы не пересчитывать какие-то знают значение много раз я если они остаются одними и теми же да с этим понятно а вот еще есть такой

    00:35:59 - 00:37:44

  • хуп как юз контекст для чего нам нужен из контекста а ну по названию предполагаю что он позволяет расшаривать состояние между компонентами которые не являются родительскими до черным а находится на более глубоких уровнях сложности но я с контекст на самом деле раз не работала ну да ты в принципе все правильно сказала да давай откроем сейчас sandbox реак там будет один примерчик смотри у нас есть некий компонент лист простой в принципе компонент который нам возвращает какой-то gsx что будет див здесь будет что-то написано компонент

    00:36:52 - 00:38:32

  • лист и мы будем каждый render этого компонента выводить в логе и этот компонент мы используем внутри компонента внутри компонентов у нас будет состояние с помощью пукаю state мы его сейчас сделаем и будет кнопочка которая будет это состоянии изменять повесим слушатель события не будем вызывать функцию состоит и увеличивается стороне на единичку быть вот здесь повыше это состояние выведем уже сказал на каждый render компонента лист мы будем выводить что-то влоги и также будем выводить в логе но каждый

    00:37:41 - 00:39:05

  • render компонента up кнопка у нас каждый раз будет перри рендере ваться компонента об но это логично потому что изменяется состояние но у нас также при каждом нажатии на кнопку перелет или рендере вается компонент лист вот как сделать так чтобы этот лист не перегревался ведь у нас там внутри ничего не изменяется и у нас получается лишний рендер а если этот компонент был бы более сложным это было бы уже накладно а [музыка] ну обернуть компонент листа мама да да собственно говоря это я и хотел услышать

    00:38:25 - 00:39:34

  • ним вряд ли мы только импортируемого и перед день туда параметрам как 1 лист и здесь уже воспользуемся не просто листом чтобы понимаем что это компонент сделаешь большой буквы если теперь мы попробуем потыкать на кнопку то у нас будет перегреваться только и но что если усложнить задачу если у нас лист будет принимать еще какой-то список давай назовем его тоже лист и будем этот лист с помощью функции map здесь рисовать например просто в блоки дифф будем элемент выводить и как люди будет этот элемент тоже использовать и

    00:39:04 - 00:40:31

  • здесь пусть у нас этот лист будет проинициализирован просто какие-то значения и как про пса на этот лист передаем и вот здесь я не сделал реструктуризацию поправим вот тогда если сейчас по нажимать на кнопку то опять же у нас есть начинает перегреваться хотя список у нас никак не меняется как нам сделать так чтобы вернуть прежний функционал потому что мимо нам просто уже здесь не помогает вернуть вот этот компонент the lies lies the views мама да давай попробуем тысячи так прежде всего ему нужно квартировать

    00:39:55 - 00:41:19

  • тут массив зависимость доставка честь сейчас по нажимать на кнопку опять же компонент лист перри рендере ваться не будет и на этом в принципе все вот такой вот небольшой у нас собеседование получилось давай подведём некоторые итоги в целом ну я вижу что-то очень хорошо знаешь и понимаешь теоретический вопрос ответила прям быстро порядку тоже вижу что ты все понимаешь всего говоришь осознанно не просто заученные ответы но вот единственно задачами были такие зависания но это можно понять потому что

    00:40:45 - 00:41:57

  • когда-то эти задачи долго не решаешь навык теряется ну да потому что в работе как то обычно не нужны такие задачки но редко чтобы такое нужно реализуя соглашусь целом у тебя как от собеседования впечатления ну я пока я очень волновалась перед собеседованием передать потому что совершенно не знал чего ждать но ну впечатления очень положительно потому что все интересно попробовать для себя в первую очередь чтоб тебя оценить и понять свой уровень и вообще просто просто прикольно это все попробовать и так подведу некоторые

    00:41:23 - 00:42:40

  • итоги теперь сам часть вопросов я даже озвучивать не стал потому что для татьяны они были бы слишком простыми изначально уровень она свой оценила как junior и поэтому вопросы посложней прям я готовит не стал я должен был подготовить вопросы посложнее но уже что имеем то имеем итак друзья если собеседование вам понравилось то не забываем поставить лайк написать комментарий и скорее всего это было последнее собеседование на канале подготавливать какие-то уникальные вопросы и задачи становится все сложнее

    00:42:01 - 00:43:05

  • и сложнее и делать это так чтобы эти задачи и вопросы не повторялись с авторами других ютуб-каналов уже задача практически невыполнимая потому что эти вопросы и ограничены придумывать их до бесконечности ну просто невозможно а повторяться не хочу потому что в этом смысловой нагрузки абсолютно никакой нет и на этом мы заканчиваем друзья я в свою очередь буду у вас следующих роликах

    00:42:33 - 00:43:23