Тёмный

5 вопросов по JavaScript, на которых каждый может ошибиться 

Juniors Lab
Подписаться 556
Просмотров 27 тыс.
50% 1

В этом видео мы разберём пять каверзных вопросов по JS, которые могут застать вас врасплох на собеседовании.
Вопросы касаются объявления переменной через var, областей видимости, всплытия, стрелочных функций и других тонкостей.
Видео прежде всего полезно потенциальным джуниорам, однако может пригодиться и "взрослым" специалистам.

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 115   
@SurenEnfiajyan
@SurenEnfiajyan Год назад
for (let i = 0; i
@DzhavidR
@DzhavidR 10 месяцев назад
блестяяяще
@juniorslab1029
@juniorslab1029 9 месяцев назад
да, там уже заметили ошибку в монтаже - обратите внимание, там кадр неудачно склеился и в конце становится правильным(
@mikhailprorekhin7434
@mikhailprorekhin7434 7 месяцев назад
потому что let создается и присваивается в каждом цикле.
@millimeter8406
@millimeter8406 6 месяцев назад
@@juniorslab1029 это не кадр "неудачно склеился", а ты невнимателен на монтаже. Не надо собственные косяки перекладывать на абстрактную "неудачу"
@juniorslab1029
@juniorslab1029 6 месяцев назад
@@millimeter8406чот аж форточку захотелось открыть)))
@tekartgroup1677
@tekartgroup1677 Год назад
Голос потрясающий! Материал зачётный! Кот бомбезный!
@bikadV
@bikadV 6 месяцев назад
Звук обработан. То есть, любой голос можно (и в общем, нужно) обработать до состояния, когда он будет "профессиональным".
@energizet4845
@energizet4845 Год назад
for (let i = 0; i < 5; i++) { setTimeout(()=>console.log(i),i*100) } Код действительно выведет от 0 до 5, но не потому, что let блочный исходя из такой логики... let i = 0; setTimeout(()=>console.log(i),100); i++; i++; ...код выше должен вывести - 0, но на самом деле выведет - 2 а этот пять пятёрок let i = 0; for (; i < 5; i++) { setTimeout(()=>console.log(i),i*100) } let в for - это единственный случай когда переменная замыкается по значению
@djorayevofficial5060
@djorayevofficial5060 Месяц назад
За видео спасибо ! Вижу давно не снимаешь ждем новостей от тебя )
@АндрейКутузов-ф4п
@АндрейКутузов-ф4п 8 месяцев назад
Почему у этого канала так мало просмотров? Качество видео просто топ. Этот канал заслуживает гораздо большего.
@millimeter8406
@millimeter8406 6 месяцев назад
потому что на этом канале всего один видос
@nurmukhammadxxx5046
@nurmukhammadxxx5046 2 месяца назад
Такими каверзными вопросами были отсеяны ху-я туча потенциально нормальных спецов. Из которых можно было вырастить классных разработчиков. Самому встречались кейсы когда один и тот же по сути вопрос задавался в разных вариациях и причем ответы были на 90% были похожи, с не большой разницей.
@D0F4M1N3
@D0F4M1N3 Год назад
Последний был настолько очевиден, что после setTimeout и стрелочной функции, я молча заорал: данунахер неужели 1!?
@XAH30
@XAH30 6 месяцев назад
Ага, а при приеме на работу в какую-то "Пятерочку" нужно чтобы кассиров проверяли на умение пользоваться счетными палочками, у юристов спрашивать про свод законов двенадцати таблиц, ну а программистов нужно наверное спрашивать про программирование на перфокартах:) 5 вопросов просто на "порассуждать" и к практическим знаниям отношения не имеют. Я бы наверное напрягся, если бы мне кандидат на все 5 подобных вопросов правильно ответил:)
@buries_r
@buries_r Месяц назад
5:00 сам запутал всех, изначально показываешь картинку с let и говоришь что работает не корректно, а потом говоришь что var нужно заменить на let и все будет норм
@eugenechernyshenko4933
@eugenechernyshenko4933 Месяц назад
Сама постановки вопроса неверная. Вернут ли они один и тот же объект? Ответ: Нет! Даже если бы они были написаны буква в букву, это было бы 2 разных идентификатора.
@seriogaromanchykov9451
@seriogaromanchykov9451 6 месяцев назад
не слушай душнил продолжай
@xDiezz
@xDiezz Год назад
Гуф рассказывает про джаваскрипт
@juniorslab1029
@juniorslab1029 Год назад
Как-нибудь в одном из видео попытаюсь рассказать под бит, но не гарантирую что смогу сделать это картаво)))
@ПавелМельничук-с4ш
for(let i =0; i
@ИмяФамилия-э4ф7в
Правильный ответ на вопрос с var: не используйте var. Не важно, какой был вопрос.
@juniorslab1029
@juniorslab1029 Год назад
Ответ правильный, но на собеседовании не сработает :D
@i.am.rossalex
@i.am.rossalex Год назад
Если var придуман, значит пользовать его нужно! Для объявления глобальных переменных можно
@dmsagaidak
@dmsagaidak Год назад
Допустим, вам по работе предстоит рефакторить старый код, где как раз всё на var. Надо, как минимум, понимать, как это работает
@mrlumus_
@mrlumus_ Год назад
@@i.am.rossalex Ему на замену пришли let и const, чтобы справиться с проблемой того самого "глобального" скоупа. Использовать var - плохая практика, ведущая к массе конфликтов, особенно в руках начинающего разработчика. Если не хочешь, чтобы твой пет-проект запороли на ревью при ТУ - не используй var, а если уж и решил, то попробуй-ка докажи, что именно var решило твои проблемы, а let и const не позволяют тебе с ними справиться
@Филипп-э3в
@Филипп-э3в 6 месяцев назад
@@i.am.rossalex var работает быстрее, чем let и const, так как не имеет TDZ.
@losbojos
@losbojos Год назад
В примере №2 про области видимости переменных упоминается про hoisting как всплытие, но в JS термин всплытие используется для другого понятия - bubbling всплытие в обработке событий. А hoisting в данном контексте - это "поднятие", а не всплытие: Поднятие или hoisting - это механизм в JavaScript, в котором переменные и объявления функций, передвигаются вверх своей области видимости перед тем, как код будет выполнен. А еще важно, что JavaScript "поднимает" только объявление, но не инициализацию.
@juniorslab1029
@juniorslab1029 Год назад
ДА, большое спасибо за поправку.
@ШамильАлисултанов-т6э
Видео конечно интересное) но эти задачки с VAR) как по мне это уже далекое прошлое, последний раз писал его в 2015 году никто при нормальной разработке фронт-енд приложения (где есть норм ревью кода) не позволит вам написать VAR
@juniorslab1029
@juniorslab1029 Год назад
Вы, видимо, уже опытный разработчик, поэтому и не проходили давно собеседования для Джуниоров. Поверьте - вопросы про var никуда не делись! :D В старом легаси, теоретически, встречается. Но главное: это вопросы не практические, а просто проверить знания теории.
@povezlo46
@povezlo46 Год назад
В последнем примере надо добавить, что перед тем как присвоить переменной "а" значение "3" (var a = 3) произойдет операция а++. Так как переменная "а" на этом этапе будет равна undefined результатом a++ будет NaN. А уже далее переменной "а" будет присвоено новое значение 3
@thismusic2581
@thismusic2581 8 месяцев назад
100%
@mgevlich
@mgevlich 7 месяцев назад
200%
@m.makhovsky
@m.makhovsky 4 месяца назад
тоже самое хотел написать, но благо решил почитать комментарии на случай повторения ;) лайк
@eduards5702
@eduards5702 Год назад
по settimeout косяк, там отработает от 0 до 5, потому что лет, а не вар. При вар будет то что автор сказал.
@ForesteamIV
@ForesteamIV Год назад
Первый вопрос: правильный ответ все равно совпал, потому что объекты равны не будут) Вывод: дружно настраиваем eslint
@dll220
@dll220 Год назад
Лет десять назад любил как раз такие задачки соискателям подкидывать. Но... Практика показала, что пользы в них мало. Самозванцев более простые способы выявляют. А вполне потом работоспособные спецы-трудяжки их могут не решить с первого раза. Такие задачки подходят для "исследователей". Работник который может что-то неординарное сделать, но рутину решает плохо (медленно). Вот такой мой вывод пока по таким задачкам )))
@juniorslab1029
@juniorslab1029 Год назад
Очень радует, что кто-то из рекрутёров это понимает! Да, всё так и есть. Эти задачки - сухая теория, которую знать, может и надо, но порой можно и обойтись - главное понимать общие принципы. Также, верно и обратное - не факт, что человек, знающий как решить такое, способен разворачивать и поддерживать более серьёзные проекты. В общем, это похоже на то, как если бы журналиста при приёме на работу тестировали разгадыванием кроссвордов. А что - вроде и проверка языка, и вроде бы проверка эрудированности, но в работе это далеко не на первом месте..)
@podpalmoi
@podpalmoi 2 месяца назад
@@juniorslab1029 Ты живой? Где видосы?
@alexj2904
@alexj2904 Год назад
Хорошо объясняешь и голос приятны спокойный, Короче спасибо, я подписался. Только где обещанные короткие видео объясняющие области видимости, хоистинг и прочее? Не вижу на канале.
@juniorslab1029
@juniorslab1029 Год назад
Спасибо на добром слове! Да, материалы готовятся, я обновил канал. Скоро ффсё будет!
@UchVuch
@UchVuch 6 месяцев назад
видимо планы или изменились или очень заняты?@@juniorslab1029
@shake4970
@shake4970 5 дней назад
​@@juniorslab1029скоро это когда? Год прошёл 😂
@zoyascharfschwerdt9810
@zoyascharfschwerdt9810 Год назад
Видео понравилось, короче учить и учить ещё😨 Удачи каналу!
@denzeroneYT
@denzeroneYT Год назад
😮
@okyesanap
@okyesanap Месяц назад
В первом примере ответ на 1:35 "Определение объекта должно начинаться на той же строке что и слово return". остальной словесный поток про точки с запятой вообще не понятно зачем? Только что бы новичков путать.
@it-coding
@it-coding 8 месяцев назад
нет в JS спецификации такого определения как Hoisting
@podpalmoi
@podpalmoi 2 месяца назад
В MDN есть.
@it-coding
@it-coding 2 месяца назад
ничего там не всплывает ! в JS перед запуском кода происходят этапы , и один из этапов происходит парсинг и запись всех переменных , function declaration сохраняет все тело функции , var сохраняется со значением undefined а let и const имеют значение -uninitialized Поэтому при запуске кода мы можем обращаться к var и fn declaration а к const и let нет
@H336-p1v
@H336-p1v Год назад
var str = "hello"; console.log(str[0]); str[0] = 'A'; console.log(str[0]); *Варианты ответа:* 1) ошибка TypeError 2) undefined, A 3) h, h 4) undefined, undefined 5) h, A
@juniorslab1029
@juniorslab1029 Год назад
3) h, h конечно же :) Строка - это строка, и хотя к ней можно обращаться как к массиву символов, присвоить им другое значение нельзя (иначе это и был бы массив, а не единая строка).
@ДмитрийКарпич
@ДмитрийКарпич 3 месяца назад
Эм. 6:00 "не имеет никакого свойства goodbye" - нет, window не имеет никакого свойства object. В консоли же верно вывелось.
@AntowaKartowa
@AntowaKartowa Месяц назад
По-моему объяснение работы асинхронных функций такое себе. А еще оговорка на 5:40 о том, что объект window не имеет свойства goodbye, тогда как нужно было сказать, что он не имеет свойства object.
@SM-xp8tw
@SM-xp8tw Месяц назад
Первая задачка чисто на внимательность )) которую я увы запорол
@podpalmoi
@podpalmoi 2 месяца назад
Хахаха, закончил на джуна с дипломом, написал имаг. А ответил верно лишь на 2 вопроса. Кстати автор, когда будет тот самый "следующий раз"?
@программистомв40
У тебя голос диктора) можно озвучкой заниматься и пошло в попу это программирование)
@ganyuowl
@ganyuowl 7 месяцев назад
А где новые ролики?(
@sergeykushnerov8947
@sergeykushnerov8947 Месяц назад
Хаха 2-й пример с ошибкой.. lol
@sergsergey4251
@sergsergey4251 Год назад
3й вопрос записан ошибочно
@__-np6sr
@__-np6sr Год назад
круть😲
@WinchesterD
@WinchesterD Год назад
Хорошее видео, вопрос про this стрелочной функции у меня сегодня на интервью был.
@juniorslab1029
@juniorslab1029 Год назад
О, и как? прошёл интервью? :)
@WinchesterD
@WinchesterD Год назад
@@juniorslab1029 Жду результата. Думаю что будет отрицательный, потому что половину вопросов не ответил, к примеру тот же вопрос "на что ссылается this стрелочной функции". Плюс это было интервью на стажировку по Ангуляру, на которую в первую очередь расматривают знающих Angular, потом уже людей знающих React или Vue, я со второй группы.
@juniorslab1029
@juniorslab1029 Год назад
@@WinchesterD понял. Да, с потолка так и не ответить на вопрос про this 🙄 Тоже не хочу с Ангуляром иметь дело))
@WinchesterD
@WinchesterD Год назад
@@juniorslab1029 А почему? Мне конечно куда больше React нравится, но просто интересно.
@juniorslab1029
@juniorslab1029 Год назад
@@WinchesterD Никакой личной неприязни к Ангуляру, чисто вопросы коммерческой перспективы - если открыть любой сайт с вакансиями по фронтенду JS, там будет наверное, этак 70% - Реакт, остальные 30 уже делят между собой Angular, Vue и т.д. С другой стороны, чем меньше знающих Ангуляр, тем лучше для тех кто его изучил :) Но я для себя выбрал такой, более попсовый стэк. :D
@liftoman_777
@liftoman_777 Год назад
классный канал
@nugget_sti
@nugget_sti Год назад
было полезно. лайк и подписка👍
@romankorolev8847
@romankorolev8847 6 месяцев назад
А в вопросе с таймаутом нас просто газлайтят? Несколько ошибок в видосе как недопустить ошибки на собеседовании. А точно остальной части видое можно верить?
@vargvarg7922
@vargvarg7922 Год назад
тогда уж совет по первому кейсу не ";" ставить, а преттир а увидев var на собесе, уже критерий что мне там работать не следует
@Alejandro-yv5nb
@Alejandro-yv5nb 7 месяцев назад
Крутая подача! Где еще видео?)
@gyros9162
@gyros9162 7 месяцев назад
Вот еще каверзный вопрос ) let a = {}; function cleara(a) { console.log(a); a.b = 2; console.log(a); a = null; console.log(a); } cleara(a); console.log(a)
@UchVuch
@UchVuch 6 месяцев назад
выведет 1 раз null. Правильно?
@slyjpg
@slyjpg 3 месяца назад
Большое спасибо за уроки!
@Activan1
@Activan1 Год назад
невероятно, я именно так себе и представлял javaScript.
@vadimmarchenko3128
@vadimmarchenko3128 Год назад
третий пример с ошибкой
@ПрограммистБизнесменУченый
То есть все учителя вокруг убеждают тебя что var это пережиток прошлого и что его уже не используют, при этом находятся люди которые с пеной у рта доказывают что var нужно знать и придётся с ним работать🤷‍♂️
@juniorslab1029
@juniorslab1029 9 месяцев назад
А кто говорит, что с ним придётся работать? 😃 Я больше скажу - в работе и не придётся отвечать на вопрос "что такое всплытие, контекст", "перечислите виды функций" или, скажем, "Джаваскрипт - синхронный или асинхронный язык". Это в работе. А вот на собесееедовании.... )
@IPortnovv
@IPortnovv Год назад
Давай дальше видосы. Оч круто
@rssreader90
@rssreader90 Год назад
С var не понял,
@ig89
@ig89 Год назад
Надеюсь будет ещё контент
@maxmuc1609
@maxmuc1609 Год назад
Спасибо за обучающее видео! Все отлично! По nextjs 13 версии можно тоже сделать подобное?
@nekogato8990
@nekogato8990 Год назад
ОТличное видео!
@evilinarm
@evilinarm Год назад
Зачем использован var в 2023 году?
@АндрейВерхулин
Вар используется в таких случаях: 95% -мозгоебство на собеседовании. Оставшиеся 5% - поддержка старого легаси. Все, применение окончено
@juniorslab1029
@juniorslab1029 Год назад
@@АндрейВерхулин Абсолютно так! Именно загадки для техсобеседований :)
@juniorslab1029
@juniorslab1029 Год назад
Это же не живой код, а просто пример того, что дают в заданиях на технических собеседованиях. Нет смысла спрашивать у рекрутёров, зачем вам VAR :) Все понимают, что var, по умолчанию, не используется сейчас, но тем не менее задачи с ним позволяют понять, насколько джуниор понимает как устроены области видимостей.
@focus12024
@focus12024 Год назад
@@juniorslab1029 Пишу на Js 3+ года. Но тем неменее было интерестно освежить память. 🫡
@bashkort_erete
@bashkort_erete Год назад
обычно такие вопросы задают на собесах те, кто хочет свое чсв поднять это вообще никак к работе не относится и только впустую время тратится, тупые задачки от которых толку в работе 0
@juniorslab1029
@juniorslab1029 Год назад
А на теоретических собесах для Джуниоров бывают не тупые задачки? :)
Далее
JavaScript Visualized - Closures
11:34
Просмотров 41 тыс.
Трудности СГОРЕВШЕЙ BMW M4!
49:41
Просмотров 1,4 млн
100 Identical Twins Fight For $250,000
35:40
Просмотров 39 млн
SENIOR on JUNIOR Javascript Developer interview
26:35
Просмотров 285 тыс.