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

  Переглядів 21,035

Juniors Lab

Juniors Lab

Рік тому

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

КОМЕНТАРІ: 83
@SurenEnfiajyan
@SurenEnfiajyan Рік тому
for (let i = 0; i
@DzhavidR
@DzhavidR 5 місяців тому
блестяяяще
@juniorslab1029
@juniorslab1029 4 місяці тому
да, там уже заметили ошибку в монтаже - обратите внимание, там кадр неудачно склеился и в конце становится правильным(
@mikhailprorekhin7434
@mikhailprorekhin7434 2 місяці тому
потому что let создается и присваивается в каждом цикле.
@millimeter8406
@millimeter8406 2 місяці тому
@@juniorslab1029 это не кадр "неудачно склеился", а ты невнимателен на монтаже. Не надо собственные косяки перекладывать на абстрактную "неудачу"
@juniorslab1029
@juniorslab1029 2 місяці тому
@@millimeter8406чот аж форточку захотелось открыть)))
@user-vu6hn4ul2i
@user-vu6hn4ul2i Рік тому
Правильный ответ на вопрос с 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 не позволяют тебе с ними справиться
@user-os5jq3wm9w
@user-os5jq3wm9w Місяць тому
@@i.am.rossalex var работает быстрее, чем let и const, так как не имеет TDZ.
@povezlo46
@povezlo46 Рік тому
В последнем примере надо добавить, что перед тем как присвоить переменной "а" значение "3" (var a = 3) произойдет операция а++. Так как переменная "а" на этом этапе будет равна undefined результатом a++ будет NaN. А уже далее переменной "а" будет присвоено новое значение 3
@thismusic2581
@thismusic2581 3 місяці тому
100%
@michaelgevlich2770
@michaelgevlich2770 3 місяці тому
200%
@losbojos
@losbojos Рік тому
В примере №2 про области видимости переменных упоминается про hoisting как всплытие, но в JS термин всплытие используется для другого понятия - bubbling всплытие в обработке событий. А hoisting в данном контексте - это "поднятие", а не всплытие: Поднятие или hoisting - это механизм в JavaScript, в котором переменные и объявления функций, передвигаются вверх своей области видимости перед тем, как код будет выполнен. А еще важно, что JavaScript "поднимает" только объявление, но не инициализацию.
@juniorslab1029
@juniorslab1029 11 місяців тому
ДА, большое спасибо за поправку.
@tekartgroup1677
@tekartgroup1677 Рік тому
Голос потрясающий! Материал зачётный! Кот бомбезный!
@bikadorov
@bikadorov Місяць тому
Звук обработан. То есть, любой голос можно (и в общем, нужно) обработать до состояния, когда он будет "профессиональным".
@nugget_sti
@nugget_sti Рік тому
было полезно. лайк и подписка👍
@foresteam4206
@foresteam4206 Рік тому
Первый вопрос: правильный ответ все равно совпал, потому что объекты равны не будут) Вывод: дружно настраиваем eslint
@eduards5702
@eduards5702 Рік тому
по settimeout косяк, там отработает от 0 до 5, потому что лет, а не вар. При вар будет то что автор сказал.
@IPortnovv
@IPortnovv Рік тому
Давай дальше видосы. Оч круто
@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 - это единственный случай когда переменная замыкается по значению
@zoyascharfschwerdt9810
@zoyascharfschwerdt9810 Рік тому
Видео понравилось, короче учить и учить ещё😨 Удачи каналу!
@denzeroneYT
@denzeroneYT Рік тому
😮
@dll220
@dll220 Рік тому
Лет десять назад любил как раз такие задачки соискателям подкидывать. Но... Практика показала, что пользы в них мало. Самозванцев более простые способы выявляют. А вполне потом работоспособные спецы-трудяжки их могут не решить с первого раза. Такие задачки подходят для "исследователей". Работник который может что-то неординарное сделать, но рутину решает плохо (медленно). Вот такой мой вывод пока по таким задачкам )))
@juniorslab1029
@juniorslab1029 Рік тому
Очень радует, что кто-то из рекрутёров это понимает! Да, всё так и есть. Эти задачки - сухая теория, которую знать, может и надо, но порой можно и обойтись - главное понимать общие принципы. Также, верно и обратное - не факт, что человек, знающий как решить такое, способен разворачивать и поддерживать более серьёзные проекты. В общем, это похоже на то, как если бы журналиста при приёме на работу тестировали разгадыванием кроссвордов. А что - вроде и проверка языка, и вроде бы проверка эрудированности, но в работе это далеко не на первом месте..)
@Alejandro-yv5nb
@Alejandro-yv5nb 2 місяці тому
Крутая подача! Где еще видео?)
@nekogato8990
@nekogato8990 Рік тому
ОТличное видео!
@maxmuc1609
@maxmuc1609 Рік тому
Спасибо за обучающее видео! Все отлично! По nextjs 13 версии можно тоже сделать подобное?
@alexj2904
@alexj2904 Рік тому
Хорошо объясняешь и голос приятны спокойный, Короче спасибо, я подписался. Только где обещанные короткие видео объясняющие области видимости, хоистинг и прочее? Не вижу на канале.
@juniorslab1029
@juniorslab1029 Рік тому
Спасибо на добром слове! Да, материалы готовятся, я обновил канал. Скоро ффсё будет!
@user-ly9gp2mi8u
@user-ly9gp2mi8u Місяць тому
видимо планы или изменились или очень заняты?@@juniorslab1029
@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
@Activan1
@Activan1 Рік тому
невероятно, я именно так себе и представлял javaScript.
@user-py7nm1mu2b
@user-py7nm1mu2b Рік тому
Видео конечно интересное) но эти задачки с VAR) как по мне это уже далекое прошлое, последний раз писал его в 2015 году никто при нормальной разработке фронт-енд приложения (где есть норм ревью кода) не позволит вам написать VAR
@juniorslab1029
@juniorslab1029 Рік тому
Вы, видимо, уже опытный разработчик, поэтому и не проходили давно собеседования для Джуниоров. Поверьте - вопросы про var никуда не делись! :D В старом легаси, теоретически, встречается. Но главное: это вопросы не практические, а просто проверить знания теории.
@ig89
@ig89 Рік тому
Надеюсь будет ещё контент
@liftoman_777
@liftoman_777 Рік тому
классный канал
@XAH30
@XAH30 Місяць тому
Ага, а при приеме на работу в какую-то "Пятерочку" нужно чтобы кассиров проверяли на умение пользоваться счетными палочками, у юристов спрашивать про свод законов двенадцати таблиц, ну а программистов нужно наверное спрашивать про программирование на перфокартах:) 5 вопросов просто на "порассуждать" и к практическим знаниям отношения не имеют. Я бы наверное напрягся, если бы мне кандидат на все 5 подобных вопросов правильно ответил:)
@user-eu8kf1xb9h
@user-eu8kf1xb9h 3 місяці тому
Почему у этого канала так мало просмотров? Качество видео просто топ. Этот канал заслуживает гораздо большего.
@millimeter8406
@millimeter8406 2 місяці тому
потому что на этом канале всего один видос
@__-np6sr
@__-np6sr 11 місяців тому
круть😲
@D0F4M1N3
@D0F4M1N3 Рік тому
Последний был настолько очевиден, что после setTimeout и стрелочной функции, я молча заорал: данунахер неужели 1!?
@it-coding
@it-coding 3 місяці тому
нет в JS спецификации такого определения как Hoisting
@gyros9162
@gyros9162 3 місяці тому
Вот еще каверзный вопрос ) let a = {}; function cleara(a) { console.log(a); a.b = 2; console.log(a); a = null; console.log(a); } cleara(a); console.log(a)
@user-ly9gp2mi8u
@user-ly9gp2mi8u Місяць тому
выведет 1 раз null. Правильно?
@vadimmarchenko3128
@vadimmarchenko3128 8 місяців тому
третий пример с ошибкой
@sergsergey4251
@sergsergey4251 Рік тому
3й вопрос записан ошибочно
@user-ir8nd6mj2b
@user-ir8nd6mj2b Рік тому
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 конечно же :) Строка - это строка, и хотя к ней можно обращаться как к массиву символов, присвоить им другое значение нельзя (иначе это и был бы массив, а не единая строка).
@ganya7427
@ganya7427 3 місяці тому
А где новые ролики?(
@romankorolev8847
@romankorolev8847 Місяць тому
А в вопросе с таймаутом нас просто газлайтят? Несколько ошибок в видосе как недопустить ошибки на собеседовании. А точно остальной части видое можно верить?
@user-gh6tc1bf9h
@user-gh6tc1bf9h Рік тому
У тебя голос диктора) можно озвучкой заниматься и пошло в попу это программирование)
@vargvarg7922
@vargvarg7922 Рік тому
тогда уж совет по первому кейсу не ";" ставить, а преттир а увидев var на собесе, уже критерий что мне там работать не следует
@rssreader90
@rssreader90 Рік тому
С var не понял,
@seriogaromanchykov9451
@seriogaromanchykov9451 2 місяці тому
не слушай душнил продолжай
@xDiezz
@xDiezz Рік тому
Гуф рассказывает про джаваскрипт
@juniorslab1029
@juniorslab1029 Рік тому
Как-нибудь в одном из видео попытаюсь рассказать под бит, но не гарантирую что смогу сделать это картаво)))
@evilinarm
@evilinarm Рік тому
Зачем использован var в 2023 году?
@user-ds7ct2vy1d
@user-ds7ct2vy1d Рік тому
Вар используется в таких случаях: 95% -мозгоебство на собеседовании. Оставшиеся 5% - поддержка старого легаси. Все, применение окончено
@juniorslab1029
@juniorslab1029 Рік тому
@@user-ds7ct2vy1d Абсолютно так! Именно загадки для техсобеседований :)
@juniorslab1029
@juniorslab1029 Рік тому
Это же не живой код, а просто пример того, что дают в заданиях на технических собеседованиях. Нет смысла спрашивать у рекрутёров, зачем вам VAR :) Все понимают, что var, по умолчанию, не используется сейчас, но тем не менее задачи с ним позволяют понять, насколько джуниор понимает как устроены области видимостей.
@focus12024
@focus12024 Рік тому
@@juniorslab1029 Пишу на Js 3+ года. Но тем неменее было интерестно освежить память. 🫡
@user-xn2cr5oe4p
@user-xn2cr5oe4p 4 місяці тому
То есть все учителя вокруг убеждают тебя что var это пережиток прошлого и что его уже не используют, при этом находятся люди которые с пеной у рта доказывают что var нужно знать и придётся с ним работать🤷‍♂️
@juniorslab1029
@juniorslab1029 4 місяці тому
А кто говорит, что с ним придётся работать? 😃 Я больше скажу - в работе и не придётся отвечать на вопрос "что такое всплытие, контекст", "перечислите виды функций" или, скажем, "Джаваскрипт - синхронный или асинхронный язык". Это в работе. А вот на собесееедовании.... )
@bashkort_erete
@bashkort_erete Рік тому
обычно такие вопросы задают на собесах те, кто хочет свое чсв поднять это вообще никак к работе не относится и только впустую время тратится, тупые задачки от которых толку в работе 0
@juniorslab1029
@juniorslab1029 Рік тому
А на теоретических собесах для Джуниоров бывают не тупые задачки? :)
@user-ju3sl1yx9e
@user-ju3sl1yx9e Рік тому
for(let i =0; i
😨Новая Война в GTA 5 Online #shorts
00:40
King Dm
Переглядів 1,6 млн
Best OS for programming? Mac vs Windows vs Linux debate settled
8:41
Урок 4. JavaScript. Асинхронность.Что такое Event Loop. JS SetTimeout 0
17:58
Windows в Docker - шок, восторг, разочарование, принятие.
29:00
Все о Frontend-разработке за 15 минут
15:14
Merion Academy
Переглядів 82 тис.