Хорошее видео. Неожиданно не просто список вопросов и ответов, а довольно глубокая оценка. Есть замечание про this на схеме "calling a normal function" а случае если это не dot-нотация нужна еще одна развилка: используется строгий режим (например в модуле, или указанный вручную) или нет. Т.к. this === undefined в этом сценарии только в строгом режиме. В нестрогом там будет globalThis. Это, конечно, есть на схеме "in script or module", но лучше было еще раз уточнить этот момент. да и важно не то, модуль это или нет, а именно строгий или используется режим. если включить строгий режим в скрипте без модуля, то так же получим undefined. В примере на замыкания ошибочка. На собесе бы за такое зацепились )) Первый вызов counter() вернет 0, т.к. у нас там постинкремент. вот если бы в возвращаемой функции было return ++count, тогда все бы соответсвовало логам.
Лучшее видео как для новичков, так и для более опытных. Мне не помешало ничего досмотреть до конца. Продолжай в любом случае, у тебя хорошо получается🎉
Сначала была удивлена количеством похвалы в комментах, думала просто местечковые подписчики хвалят. Но на середине видео на моменте с контекстом this поняла насколько это прекрасный материал. Я всего лишь джун и не знаю многого, а сейчас рынок труда малость сумасшедший и не знаешь чего ждать. Но я точно понимаю пользу от этого материала, даже если он пока не может полностью уложиться в моей голове. Спасибо большое за труд. Так же хочу заметить что в программируй, типизируй немного иначе описана динамическая и строгая типизации, шире. Если кому интересно, прочтите - первые 40 страниц дадут вам чуть более широкую картину.
Спасибо! 1. Примитивы тоже передаются по ссылке, а не по значению. Это легко заметить, если переменную с огромным стрингом отправить в качестве параметра в функцию: размер кучи не поменяется. 2. Псевдомассив arguments де-факто deprecated. Используй метод rest вместо: (...args)
очень круто сделал. очень глубоко разобрал каждый вопрос. т.е. ты именно разобрал вопрос, дал понимание почему так, а не тупо сказал что это так. респект
Блин, информация очень круто и подробно раскрыта. Некоторые вещи вообще впервые увидел, в силу их спецефичности, также и не видел чтобы их спрашивали, но тем не менее, очень полезно для понимания того, как устроен язык и как он обрабатывает определенные процессы. Спасибо, больше бы контента, который так же раскрывает обыденные темы и охватывает больше, чем просто шаблонные вопросы!
Функция throttle не совсем корректная. Если например нам нужно выполнять операции не чаще чем раз в секунду, и при этом второй вызов пришелся например через 900ms после предыдущего, то получается что новый вызов будет доступен через 900 + 1000 ms. И еще один момент. Наверное все-таки нам понадобится выполнить операцию по истечении времени задержки, а не просто проигнорировать ее, как в примере.
Подскажите, пожалуйста, почему если в пустом файле, н/р, test.js, написать единственную строчку кода "console.log(this)" и запустить скрипт, то runtime выдаёт пустой объект {} вне зависимости от строгости режима? Но если вызвать console.log(this) в функции, н/р, function logThis() {console.log(this)}, то в зависимости от режима runtime выдаёт либо Object [global], либо undefined.
Привет! Это по-прежнему зависит от откружения, в котором скрипт запускается. Насколько я по описанию могу судить, речь про ноду, мы все же рассматривали браузер)
@@vladimirlebedev00010 Да, речь про ноду, просто не понимаю почему при поведении через функцию, наследуя родительское окружение, мы получаем undefined или globalThis, а если попытаться получить доступ к this напрямую в самом что ни на есть батя-маминском окружении через единственный console.log(this), то получаем пустой объект {}. Откуда тогда берутся undefined and globalThis если конечной остановкой является {}?
На джуновские должности идёт 3-4 вопроса из JS, typescrpipt, вопросы по фрэйворку, плюс серверные технологии. И тут уже ничего шаблонного нет, вопросы будут идти чистым рандомом, на усмотрение проводящего собес сотрудника. Как предложите готовиться к такому?
Привет! Почему же, вопросы из остальных тем такие же шаблонные) Конкретно это видео покрывает те самые 3-4 вопроса из JS. Как правило, все они (или большинство из них) будут аналогичны тем, что я в видео разобрал. По другим технологиям в идеале бы выпустить аналогичные видео, но довольно много времени занимает подготовка к таким видео. Думаю, в течение года по всем темам подобные ролики выпущу)
36:14 держу в курсе, structuredClone в разы медленней чем JSON.parse + stringify в большинстве случаев. Реальное преимущество structuredClone - это его возможность сохранять копию вместе с функциями и прочими эл-тами, не помещающимися в json
Про мёртвую зону Мурыч сказал что сморозил чушь так как где-то это прочитал и не перепроврил. Никакой мёртвой зоны нет. В остальном про проверку на то что мы хотим у обратиться к переменной до того как она объявлена верно. Откуда вообще взялось что var устарело интерестно, сам в это долго верил..
Вопрос к автору видео? Какой у вас опыт разработки? Были ли энтерпрайз проекты или работа в стартапе? Я не про коммерческую разработку (галеры сейчас все меньше интересуют). Чего спрашиваю. Для джуновского уровня эти знания прокатят, а вот выше уже вопросы. Слишком много ошибок. Именно технических, как js работает под капотом. Хотя, автор может поискать демимурыча. Он это видео разобрал по косточкам, отметил все моменты. А этот муж весьма авторитетен. Так что рекомендация автору, найди его стрим на Ютубе и посмотри, выйдешь на новый уровень.
5:31 - Event loop не часть JS, єто не часть стандарта. Event Loop - єто механизм реализации. Именно по этому ивент луп может и отличается в разных движках. Более того асинхронность JS можно реализовать и без ивент лупа
JS для собеседований - это: let, var, const - типа их на работе ты не используешь, да? Объекты никогда не замораживаешь? Никогда не клонируешь объекты? и т.д К чему эти слова про 2 разных js в начале?
Привет! Уже больше 3-х лет пишу код за деньги, никогда не приходилось замораживать объекты, отличать глубокую копию от неглубокой, использовать var, сталкиваться с особенностями this в разных режимах. Но все это спрашивают и по этим ответам определяют твою экспертность, что для меня дико, но как есть.
ахринеть. на собесах спрашивают про сборщик мусора в типах данных. серьёзно? когда пишу uikit мне конечно как никогда надо помнить что такое ивент луп и сборщик мусора и как не попасть на var. у интервьюеров каша в голове что ли?)
Так и не понял, в чем претензия. Моё решение не покрывает все кейсы? Очевидно, полифил выглядел бы сложнее, чем то, что я реализовал, ну а кому это нужно? На собеседованиях чаще всего несколько задач, если представить, что это одна из них, то предложенного мной решения хватит.
Хорошее видео. Неожиданно не просто список вопросов и ответов, а довольно глубокая оценка.
Есть замечание про this на схеме "calling a normal function" а случае если это не dot-нотация нужна еще одна развилка: используется строгий режим (например в модуле, или указанный вручную) или нет. Т.к. this === undefined в этом сценарии только в строгом режиме. В нестрогом там будет globalThis.
Это, конечно, есть на схеме "in script or module", но лучше было еще раз уточнить этот момент. да и важно не то, модуль это или нет, а именно строгий или используется режим. если включить строгий режим в скрипте без модуля, то так же получим undefined.
В примере на замыкания ошибочка. На собесе бы за такое зацепились ))
Первый вызов counter() вернет 0, т.к. у нас там постинкремент. вот если бы в возвращаемой функции было return ++count, тогда все бы соответсвовало логам.
Привет! Спасибо тебе большое за фидбек, замечания более чем уместные, со всеми соглашусь)
Спасибо Вам огромное за такой супер полезный материал! Действительно, спрашивают все из этого видео
Лучшее видео как для новичков, так и для более опытных. Мне не помешало ничего досмотреть до конца. Продолжай в любом случае, у тебя хорошо получается🎉
Спасибо большое!
Автор, ты красавчик !
Очень помогает освежить память и узнать что то новое , спасибо !
Было бы круто по реакту так же в 2 часах покопаться 😊
Крутое видео, большую часть вопросов отсюда действительно спрашивали (хожу по собесам уже несколько месяцев, завтра очередной). Спасибо за контент)
Спасибо! Удачи на собеседованиях!)
И что никуда не берут 😮
@@ПолинаЕремина-у2ч не знаю как сейчас. Давно не проходил. Сколько уже собесов без офера?
как успехи?
@@antoncigur2724 безуспешно. Сижу на старом месте
Сначала была удивлена количеством похвалы в комментах, думала просто местечковые подписчики хвалят. Но на середине видео на моменте с контекстом this поняла насколько это прекрасный материал. Я всего лишь джун и не знаю многого, а сейчас рынок труда малость сумасшедший и не знаешь чего ждать. Но я точно понимаю пользу от этого материала, даже если он пока не может полностью уложиться в моей голове. Спасибо большое за труд.
Так же хочу заметить что в программируй, типизируй немного иначе описана динамическая и строгая типизации, шире. Если кому интересно, прочтите - первые 40 страниц дадут вам чуть более широкую картину.
Большое спасибо за видео. Прям то, что надо. Ясно, понятно, по делу.
Нужно такое же видео по angular)
просто отличные ответы, еще не видел чтобы так подробно расскрывали ответы. Жду следующие видео
Шикарное видео и очень доходчиво рассказываешь! Записуй еще
Супер полезно, давно ждал) Еще бы такое же по ангуляру
Спасибо! По ангуляру обязательно выпущу аналогичное видео)
@@vladimirlebedev00010 ждём!
@@vladimirlebedev00010 жду уже 2 месяца
Спасибо!
1. Примитивы тоже передаются по ссылке, а не по значению. Это легко заметить, если переменную с огромным стрингом отправить в качестве параметра в функцию: размер кучи не поменяется.
2. Псевдомассив arguments де-факто deprecated. Используй метод rest вместо: (...args)
Последователь мурыча)
очень круто сделал. очень глубоко разобрал каждый вопрос. т.е. ты именно разобрал вопрос, дал понимание почему так, а не тупо сказал что это так. респект
Классное видео, но его в формате шортсов дополнительно бы тоже посмотрел)
Спасибо огромное, очень полезно!
спасибо,видео очень помогло при подготовке к собеседованию
Спасибо за грамотную лекцию!
Зачёт! лайк, подписка, однозначно!
Очень круто!
Вот бы по реакту или ноде такое посмотреть.
Это прямо отличное видео! Респект!
Никогда нигде не писал комментарии, но здесь без шансов. Очень хорошее и главное полезное видео, спасибо большое за такой контент😊
Спасибо огромное!
Спасибо, очень полезно
Хороший углубленный видос.
Классное видео!
37:50 а здесь не лучше ли выполнить нестрогое сравнение value == null, чтобы еще и на undefined проверить ?
А мы же проверкой typeof !== 'object' уже учли undefined, null мы отдельно обрабатываем, потому что у него typeof === 'object'
@@vladimirlebedev00010 понял, спасибо
у вас очень хорошо получается объяснять
Спасибо большое!
Спасибо за такое видео, всё очень подробно и информативно изложил. Лучший )
Блин, информация очень круто и подробно раскрыта. Некоторые вещи вообще впервые увидел, в силу их спецефичности, также и не видел чтобы их спрашивали, но тем не менее, очень полезно для понимания того, как устроен язык и как он обрабатывает определенные процессы. Спасибо, больше бы контента, который так же раскрывает обыденные темы и охватывает больше, чем просто шаблонные вопросы!
Спасибо!
ВСЕМ УСПЕХОВ НА СОБЕСАХ
Функция throttle не совсем корректная. Если например нам нужно выполнять операции не чаще чем раз в секунду, и при этом второй вызов пришелся например через 900ms после предыдущего, то получается что новый вызов будет доступен через 900 + 1000 ms. И еще один момент. Наверное все-таки нам понадобится выполнить операцию по истечении времени задержки, а не просто проигнорировать ее, как в примере.
Подскажите, пожалуйста, почему если в пустом файле, н/р, test.js, написать единственную строчку кода "console.log(this)" и запустить скрипт, то runtime выдаёт пустой объект {} вне зависимости от строгости режима? Но если вызвать console.log(this) в функции, н/р, function logThis() {console.log(this)}, то в зависимости от режима runtime выдаёт либо Object [global], либо undefined.
Привет! Это по-прежнему зависит от откружения, в котором скрипт запускается. Насколько я по описанию могу судить, речь про ноду, мы все же рассматривали браузер)
@@vladimirlebedev00010 Да, речь про ноду, просто не понимаю почему при поведении через функцию, наследуя родительское окружение, мы получаем undefined или globalThis, а если попытаться получить доступ к this напрямую в самом что ни на есть батя-маминском окружении через единственный console.log(this), то получаем пустой объект {}. Откуда тогда берутся undefined and globalThis если конечной остановкой является {}?
1:39:42 разве асинхронность работает в forEach ? Похоже на ошибку
Почему нет? Он принимает коллбек, вполне им может быть асинхронная функция)
Спасибо!
ждем продолжения 2 части
На джуновские должности идёт 3-4 вопроса из JS, typescrpipt, вопросы по фрэйворку, плюс серверные технологии. И тут уже ничего шаблонного нет, вопросы будут идти чистым рандомом, на усмотрение проводящего собес сотрудника. Как предложите готовиться к такому?
Привет! Почему же, вопросы из остальных тем такие же шаблонные)
Конкретно это видео покрывает те самые 3-4 вопроса из JS. Как правило, все они (или большинство из них) будут аналогичны тем, что я в видео разобрал.
По другим технологиям в идеале бы выпустить аналогичные видео, но довольно много времени занимает подготовка к таким видео.
Думаю, в течение года по всем темам подобные ролики выпущу)
Дай бог здоровья
36:14 держу в курсе, structuredClone в разы медленней чем JSON.parse + stringify в большинстве случаев. Реальное преимущество structuredClone - это его возможность сохранять копию вместе с функциями и прочими эл-тами, не помещающимися в json
Спасибо! Изучу этот вопрос ещё раз)
7:34 - не верное утверждение. Классы уже не являются просто синтаксическим сахаром, в виду появления приватных (#) свойств
Супер полезно
я тебя люблю!!!
Про мёртвую зону Мурыч сказал что сморозил чушь так как где-то это прочитал и не перепроврил. Никакой мёртвой зоны нет. В остальном про проверку на то что мы хотим у обратиться к переменной до того как она объявлена верно. Откуда вообще взялось что var устарело интерестно, сам в это долго верил..
Задачка на цикл событий действительно интересная. Про await и его ожидание забыл.
Привет! Спасибо за видео) Можешь, пожалуйста, подсказать, что за песочница для кода используется в видео?
Привет!
Я две песочницы использовал: codesandbox (codesandbox.io) и от тинька (interview.tbank.ru)
Немного не так...если число делить на 0, то будет infinity/ -infinity. Nan будет если 0 делить на 0
1:29:50 опечатка, атрибут не defer, a async
Откройте форточки перед включением видоса или включите кандер на максимум, а то задохнетесь от духоты. Лайк поставил)
Спасибо за видео. Поправка, рендер делается после выполнения микротасок, а не после макро
Спасибо! А можно ссылочку на источник, пожалуйста? Ознакомился бы с удовольствием)
@@vladimirlebedev00010 на learn js страница event-loop, там заголовок микро и макрозадачи. Ютуб ссылки удаляет
Поправка, такого понятия как макротаска не существует
@@tnsaturday это понятие которое придумало сообщество. В спецификации нет.
@@dididie158 если какого-то понятия нет в спецификации, значит его не существует.
управление очисткой памяти называется не просто высокоуровненвый а managed язык, то есть управляемый.
Вопрос к автору видео? Какой у вас опыт разработки? Были ли энтерпрайз проекты или работа в стартапе? Я не про коммерческую разработку (галеры сейчас все меньше интересуют). Чего спрашиваю. Для джуновского уровня эти знания прокатят, а вот выше уже вопросы. Слишком много ошибок. Именно технических, как js работает под капотом. Хотя, автор может поискать демимурыча. Он это видео разобрал по косточкам, отметил все моменты. А этот муж весьма авторитетен. Так что рекомендация автору, найди его стрим на Ютубе и посмотри, выйдешь на новый уровень.
А ссылочку можно? Поиск не дал результатов
@CJAlos ua-cam.com/users/live52_qDIBcexA
@@mugen31337 благодарю
хороший урок
1:39:18 ошибка на 18 строке, но все работает. удивительно
Привет! Почему ошибка? Если в объекте ключ и значение совпадают по имени, то можно упускать двоеточие и писать только ключ
Мурыч бы оценил)
Я один узнал футболку ОМ? :)
поправлю автора: если разделить число на ноль, получим Infinity
и это на джуна?
В целом на любой грейд одни и те же вопросы задают
5:31 - Event loop не часть JS, єто не часть стандарта. Event Loop - єто механизм реализации. Именно по этому ивент луп может и отличается в разных движках. Более того асинхронность JS можно реализовать и без ивент лупа
Русский язык вышел из чата.
JS для собеседований - это:
let, var, const - типа их на работе ты не используешь, да?
Объекты никогда не замораживаешь?
Никогда не клонируешь объекты?
и т.д
К чему эти слова про 2 разных js в начале?
Привет! Уже больше 3-х лет пишу код за деньги, никогда не приходилось замораживать объекты, отличать глубокую копию от неглубокой, использовать var, сталкиваться с особенностями this в разных режимах. Но все это спрашивают и по этим ответам определяют твою экспертность, что для меня дико, но как есть.
Привет фамильный теска)
Привет!
в плане подачи и достуgности инфы выше чем ulbi
Много ошибок -много неточностей. Хотелось бы Ваш опыт и вашу интерпретацию по JS услышать, а не пересмотренные видео от известных гуру.
все бы ничего , но ты ГОРТАВИШЬ - не каждому это зайдет) работай над этим
А ты пишешь с ошибками, не каждому зайдет) работай над этим
Так похуй, нет разве?
БАЗА!
будем честны, по факту спича про жс вопросов ноль, но зачем ты надел для видео очки с приколом?
Из-за этих очков уже 2 комментария не по теме ролика - не зря надел)
В использовании var iife получила undefined 10 раз
Привет! А попробуй точь-в-точь скопировать пример из видео)
очки навалили кринжа
Ты 42 братуха?
Привет! Советую к прочтению "Автостопом по галактике" - крутая книжка!
сurry придумал кто-то обкуренный
ахринеть. на собесах спрашивают про сборщик мусора в типах данных. серьёзно? когда пишу uikit мне конечно как никогда надо помнить что такое ивент луп и сборщик мусора и как не попасть на var. у интервьюеров каша в голове что ли?)
Привет! Да 😁
@@vladimirlebedev00010 я в шоке. ну я могу назвать себя мидл+. с такими вопросами я не пройду и на джуна. реально сейчас такой рынок?)))
Да, так и определяют компетентность специалистов)
Неге симболды саймбол дейды
На клонировании объекта стало понятно, что автор видео вообще не понимает, что такое JavaScript. Вкатунам, впрочем, зашло, что видно по комментам.
Привет! Хотелось бы поконструктивнее критики, если не затруднит)
@@vladimirlebedev00010 привет! Ну ты же из интернета просто взял решения. Попробуй ими склонировать объект, ты удивишься результату
@@vladimirlebedev00010 ну или давай начнем сразу. Ты когда-нибудь что-то слышал про прототипное наследование?
@@vladimirlebedev00010 ну или давай начнем сразу. Ты когда-нибудь что-то слышал про прототипное наследование?
Так и не понял, в чем претензия. Моё решение не покрывает все кейсы? Очевидно, полифил выглядел бы сложнее, чем то, что я реализовал, ну а кому это нужно? На собеседованиях чаще всего несколько задач, если представить, что это одна из них, то предложенного мной решения хватит.
Спасибо большое