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

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ก.พ. 2023
  • В этом видео мы разберём пять каверзных вопросов по JS, которые могут застать вас врасплох на собеседовании.
    Вопросы касаются объявления переменной через var, областей видимости, всплытия, стрелочных функций и других тонкостей.
    Видео прежде всего полезно потенциальным джуниорам, однако может пригодиться и "взрослым" специалистам.

ความคิดเห็น • 92

  • @SurenEnfiajyan
    @SurenEnfiajyan ปีที่แล้ว +44

    for (let i = 0; i

    • @DzhavidR
      @DzhavidR 7 หลายเดือนก่อน +1

      блестяяяще

    • @juniorslab1029
      @juniorslab1029  6 หลายเดือนก่อน

      да, там уже заметили ошибку в монтаже - обратите внимание, там кадр неудачно склеился и в конце становится правильным(

    • @mikhailprorekhin7434
      @mikhailprorekhin7434 4 หลายเดือนก่อน

      потому что let создается и присваивается в каждом цикле.

    • @millimeter8406
      @millimeter8406 4 หลายเดือนก่อน +1

      @@juniorslab1029 это не кадр "неудачно склеился", а ты невнимателен на монтаже. Не надо собственные косяки перекладывать на абстрактную "неудачу"

    • @juniorslab1029
      @juniorslab1029  4 หลายเดือนก่อน +4

      @@millimeter8406чот аж форточку захотелось открыть)))

  • @tekartgroup1677
    @tekartgroup1677 ปีที่แล้ว +8

    Голос потрясающий!
    Материал зачётный!
    Кот бомбезный!

    • @bikadV
      @bikadV 3 หลายเดือนก่อน

      Звук обработан. То есть, любой голос можно (и в общем, нужно) обработать до состояния, когда он будет "профессиональным".

  • @slyjpg
    @slyjpg 27 วันที่ผ่านมา

    Большое спасибо за уроки!

  • @povezlo46
    @povezlo46 ปีที่แล้ว +25

    В последнем примере надо добавить, что перед тем как присвоить переменной "а" значение "3" (var a = 3) произойдет операция а++. Так как переменная "а" на этом этапе будет равна undefined результатом a++ будет NaN. А уже далее переменной "а" будет присвоено новое значение 3

    • @thismusic2581
      @thismusic2581 5 หลายเดือนก่อน

      100%

    • @michaelgevlich2770
      @michaelgevlich2770 4 หลายเดือนก่อน

      200%

    • @m.makhovsky
      @m.makhovsky หลายเดือนก่อน

      тоже самое хотел написать, но благо решил почитать комментарии на случай повторения ;) лайк

  • @losbojos
    @losbojos ปีที่แล้ว +11

    В примере №2 про области видимости переменных упоминается про hoisting как всплытие, но в JS термин всплытие используется для другого понятия - bubbling всплытие в обработке событий. А hoisting в данном контексте - это "поднятие", а не всплытие: Поднятие или hoisting - это механизм в JavaScript, в котором переменные и объявления функций, передвигаются вверх своей области видимости перед тем, как код будет выполнен. А еще важно, что JavaScript "поднимает" только объявление, но не инициализацию.

    • @juniorslab1029
      @juniorslab1029  ปีที่แล้ว

      ДА, большое спасибо за поправку.

  • @user-vu6hn4ul2i
    @user-vu6hn4ul2i ปีที่แล้ว +61

    Правильный ответ на вопрос с var: не используйте var. Не важно, какой был вопрос.

    • @juniorslab1029
      @juniorslab1029  ปีที่แล้ว +3

      Ответ правильный, но на собеседовании не сработает :D

    • @i.am.rossalex
      @i.am.rossalex ปีที่แล้ว +2

      Если var придуман, значит пользовать его нужно! Для объявления глобальных переменных можно

    • @dmsagaidak
      @dmsagaidak ปีที่แล้ว +1

      Допустим, вам по работе предстоит рефакторить старый код, где как раз всё на var. Надо, как минимум, понимать, как это работает

    • @mrlumus_
      @mrlumus_ ปีที่แล้ว +1

      @@i.am.rossalex Ему на замену пришли let и const, чтобы справиться с проблемой того самого "глобального" скоупа. Использовать var - плохая практика, ведущая к массе конфликтов, особенно в руках начинающего разработчика. Если не хочешь, чтобы твой пет-проект запороли на ревью при ТУ - не используй var, а если уж и решил, то попробуй-ка докажи, что именно var решило твои проблемы, а let и const не позволяют тебе с ними справиться

    • @user-os5jq3wm9w
      @user-os5jq3wm9w 3 หลายเดือนก่อน +1

      @@i.am.rossalex var работает быстрее, чем let и const, так как не имеет TDZ.

  • @nugget_sti
    @nugget_sti ปีที่แล้ว +1

    было полезно. лайк и подписка👍

  • @zoyascharfschwerdt9810
    @zoyascharfschwerdt9810 ปีที่แล้ว +6

    Видео понравилось, короче учить и учить ещё😨 Удачи каналу!

  • @nekogato8990
    @nekogato8990 ปีที่แล้ว

    ОТличное видео!

  • @IPortnovv
    @IPortnovv ปีที่แล้ว

    Давай дальше видосы. Оч круто

  • @ForesteamIV
    @ForesteamIV ปีที่แล้ว +7

    Первый вопрос: правильный ответ все равно совпал, потому что объекты равны не будут)
    Вывод: дружно настраиваем eslint

  • @eduards5702
    @eduards5702 ปีที่แล้ว +6

    по settimeout косяк, там отработает от 0 до 5, потому что лет, а не вар. При вар будет то что автор сказал.

  • @Alejandro-yv5nb
    @Alejandro-yv5nb 4 หลายเดือนก่อน

    Крутая подача! Где еще видео?)

  • @liftoman_777
    @liftoman_777 ปีที่แล้ว +1

    классный канал

  • @dll220
    @dll220 ปีที่แล้ว +4

    Лет десять назад любил как раз такие задачки соискателям подкидывать.
    Но... Практика показала, что пользы в них мало. Самозванцев более простые способы выявляют. А вполне потом работоспособные спецы-трудяжки их могут не решить с первого раза. Такие задачки подходят для "исследователей". Работник который может что-то неординарное сделать, но рутину решает плохо (медленно).
    Вот такой мой вывод пока по таким задачкам )))

    • @juniorslab1029
      @juniorslab1029  ปีที่แล้ว +4

      Очень радует, что кто-то из рекрутёров это понимает!
      Да, всё так и есть. Эти задачки - сухая теория, которую знать, может и надо, но порой можно и обойтись - главное понимать общие принципы. Также, верно и обратное - не факт, что человек, знающий как решить такое, способен разворачивать и поддерживать более серьёзные проекты.
      В общем, это похоже на то, как если бы журналиста при приёме на работу тестировали разгадыванием кроссвордов. А что - вроде и проверка языка, и вроде бы проверка эрудированности, но в работе это далеко не на первом месте..)

  • @__-np6sr
    @__-np6sr ปีที่แล้ว +1

    круть😲

  • @Activan1
    @Activan1 ปีที่แล้ว

    невероятно, я именно так себе и представлял javaScript.

  • @energizet4845
    @energizet4845 ปีที่แล้ว +3

    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 - это единственный случай когда переменная замыкается по значению

  • @ig89
    @ig89 ปีที่แล้ว

    Надеюсь будет ещё контент

  • @maxmuc1609
    @maxmuc1609 ปีที่แล้ว

    Спасибо за обучающее видео! Все отлично! По nextjs 13 версии можно тоже сделать подобное?

  • @WinchesterD
    @WinchesterD ปีที่แล้ว +3

    Хорошее видео, вопрос про 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

  • @alexj2904
    @alexj2904 ปีที่แล้ว +5

    Хорошо объясняешь и голос приятны спокойный, Короче спасибо, я подписался.
    Только где обещанные короткие видео объясняющие области видимости, хоистинг и прочее? Не вижу на канале.

    • @juniorslab1029
      @juniorslab1029  ปีที่แล้ว +2

      Спасибо на добром слове!
      Да, материалы готовятся, я обновил канал.
      Скоро ффсё будет!

    • @UchVuch
      @UchVuch 3 หลายเดือนก่อน

      видимо планы или изменились или очень заняты?@@juniorslab1029

  • @user-py7nm1mu2b
    @user-py7nm1mu2b ปีที่แล้ว +3

    Видео конечно интересное)
    но эти задачки с VAR) как по мне это уже далекое прошлое, последний раз писал его в 2015 году
    никто при нормальной разработке фронт-енд приложения (где есть норм ревью кода) не позволит вам написать VAR

    • @juniorslab1029
      @juniorslab1029  ปีที่แล้ว

      Вы, видимо, уже опытный разработчик, поэтому и не проходили давно собеседования для Джуниоров. Поверьте - вопросы про var никуда не делись! :D
      В старом легаси, теоретически, встречается. Но главное: это вопросы не практические, а просто проверить знания теории.

  • @user-eu8kf1xb9h
    @user-eu8kf1xb9h 5 หลายเดือนก่อน

    Почему у этого канала так мало просмотров? Качество видео просто топ. Этот канал заслуживает гораздо большего.

    • @millimeter8406
      @millimeter8406 4 หลายเดือนก่อน +1

      потому что на этом канале всего один видос

  • @XAH30
    @XAH30 3 หลายเดือนก่อน

    Ага, а при приеме на работу в какую-то "Пятерочку" нужно чтобы кассиров проверяли на умение пользоваться счетными палочками, у юристов спрашивать про свод законов двенадцати таблиц, ну а программистов нужно наверное спрашивать про программирование на перфокартах:)
    5 вопросов просто на "порассуждать" и к практическим знаниям отношения не имеют.
    Я бы наверное напрягся, если бы мне кандидат на все 5 подобных вопросов правильно ответил:)

  • @ganyuowl
    @ganyuowl 4 หลายเดือนก่อน +1

    А где новые ролики?(

  • @user-ir8nd6mj2b
    @user-ir8nd6mj2b ปีที่แล้ว +2

    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  ปีที่แล้ว +1

      3) h, h
      конечно же :)
      Строка - это строка, и хотя к ней можно обращаться как к массиву символов, присвоить им другое значение нельзя (иначе это и был бы массив, а не единая строка).

  • @gyros9162
    @gyros9162 4 หลายเดือนก่อน

    Вот еще каверзный вопрос )
    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 3 หลายเดือนก่อน

      выведет 1 раз null. Правильно?

  • @D0F4M1N3
    @D0F4M1N3 ปีที่แล้ว

    Последний был настолько очевиден, что после setTimeout и стрелочной функции, я молча заорал: данунахер неужели 1!?

  • @sergsergey4251
    @sergsergey4251 ปีที่แล้ว +1

    3й вопрос записан ошибочно

  • @it-coding
    @it-coding 5 หลายเดือนก่อน +1

    нет в JS спецификации такого определения как Hoisting

  • @vadimmarchenko3128
    @vadimmarchenko3128 10 หลายเดือนก่อน

    третий пример с ошибкой

  • @user-hn1ph6ry8l
    @user-hn1ph6ry8l 10 วันที่ผ่านมา

    Эм. 6:00 "не имеет никакого свойства goodbye" - нет, window не имеет никакого свойства object. В консоли же верно вывелось.

  • @user-gh6tc1bf9h
    @user-gh6tc1bf9h ปีที่แล้ว +1

    У тебя голос диктора) можно озвучкой заниматься и пошло в попу это программирование)

  • @romankorolev8847
    @romankorolev8847 3 หลายเดือนก่อน

    А в вопросе с таймаутом нас просто газлайтят?
    Несколько ошибок в видосе как недопустить ошибки на собеседовании. А точно остальной части видое можно верить?

  • @vargvarg7922
    @vargvarg7922 ปีที่แล้ว

    тогда уж совет по первому кейсу не ";" ставить, а преттир
    а увидев var на собесе, уже критерий что мне там работать не следует

  • @seriogaromanchykov9451
    @seriogaromanchykov9451 3 หลายเดือนก่อน

    не слушай душнил продолжай

  • @rssreader90
    @rssreader90 ปีที่แล้ว

    С var не понял,

  • @xDiezz
    @xDiezz ปีที่แล้ว

    Гуф рассказывает про джаваскрипт

    • @juniorslab1029
      @juniorslab1029  ปีที่แล้ว

      Как-нибудь в одном из видео попытаюсь рассказать под бит, но не гарантирую что смогу сделать это картаво)))

  • @user-xn2cr5oe4p
    @user-xn2cr5oe4p 6 หลายเดือนก่อน

    То есть все учителя вокруг убеждают тебя что var это пережиток прошлого и что его уже не используют, при этом находятся люди которые с пеной у рта доказывают что var нужно знать и придётся с ним работать🤷‍♂️

    • @juniorslab1029
      @juniorslab1029  6 หลายเดือนก่อน +1

      А кто говорит, что с ним придётся работать? 😃
      Я больше скажу - в работе и не придётся отвечать на вопрос "что такое всплытие, контекст", "перечислите виды функций" или, скажем, "Джаваскрипт - синхронный или асинхронный язык". Это в работе. А вот на собесееедовании.... )

    • @investigate9584
      @investigate9584 หลายเดือนก่อน

      Если надо будет с легаси работать, то там могут встретиться var

  • @evilinarm
    @evilinarm ปีที่แล้ว

    Зачем использован var в 2023 году?

    • @user-ds7ct2vy1d
      @user-ds7ct2vy1d ปีที่แล้ว +4

      Вар используется в таких случаях: 95% -мозгоебство на собеседовании. Оставшиеся 5% - поддержка старого легаси. Все, применение окончено

    • @juniorslab1029
      @juniorslab1029  ปีที่แล้ว +2

      @@user-ds7ct2vy1d Абсолютно так! Именно загадки для техсобеседований :)

    • @juniorslab1029
      @juniorslab1029  ปีที่แล้ว +1

      Это же не живой код, а просто пример того, что дают в заданиях на технических собеседованиях. Нет смысла спрашивать у рекрутёров, зачем вам VAR :)
      Все понимают, что var, по умолчанию, не используется сейчас, но тем не менее задачи с ним позволяют понять, насколько джуниор понимает как устроены области видимостей.

    • @focus12024
      @focus12024 ปีที่แล้ว +2

      @@juniorslab1029 Пишу на Js 3+ года. Но тем неменее было интерестно освежить память. 🫡

  • @bashkort_erete
    @bashkort_erete ปีที่แล้ว

    обычно такие вопросы задают на собесах те, кто хочет свое чсв поднять
    это вообще никак к работе не относится и только впустую время тратится, тупые задачки от которых толку в работе 0

    • @juniorslab1029
      @juniorslab1029  ปีที่แล้ว

      А на теоретических собесах для Джуниоров бывают не тупые задачки? :)

  • @user-ju3sl1yx9e
    @user-ju3sl1yx9e ปีที่แล้ว

    for(let i =0; i