Хорошее видео. Неожиданно не просто список вопросов и ответов, а довольно глубокая оценка. Есть замечание про this на схеме "calling a normal function" а случае если это не dot-нотация нужна еще одна развилка: используется строгий режим (например в модуле, или указанный вручную) или нет. Т.к. this === undefined в этом сценарии только в строгом режиме. В нестрогом там будет globalThis. Это, конечно, есть на схеме "in script or module", но лучше было еще раз уточнить этот момент. да и важно не то, модуль это или нет, а именно строгий или используется режим. если включить строгий режим в скрипте без модуля, то так же получим undefined. В примере на замыкания ошибочка. На собесе бы за такое зацепились )) Первый вызов counter() вернет 0, т.к. у нас там постинкремент. вот если бы в возвращаемой функции было return ++count, тогда все бы соответсвовало логам.
очень круто сделал. очень глубоко разобрал каждый вопрос. т.е. ты именно разобрал вопрос, дал понимание почему так, а не тупо сказал что это так. респект
Спасибо! 1. Примитивы тоже передаются по ссылке, а не по значению. Это легко заметить, если переменную с огромным стрингом отправить в качестве параметра в функцию: размер кучи не поменяется. 2. Псевдомассив arguments де-факто deprecated. Используй метод rest вместо: (...args)
00:24:15 У меня тут мозг оплавился. VAR "вспылыл". Далее в стек вызовов помещается цикл, при каждой итерации, сеттаймаут попадает в макрозадачи. После выполнения цикла, у нас в очереди макрозадач 10 сеттаймаутов. После завершения цикла у нас i = 10. Далее выполняются микрозадачи (промисы). После опустошения стека вызовов, выполняются макрозадачи. Первый Сеттаймаут кладет консоль лог в стек вызовов, стек вызовов выполняет его и выводит i=10. Стек вызовов пустой - выполняется следующий сеттаймаут.
Хорошее видео. Неожиданно не просто список вопросов и ответов, а довольно глубокая оценка.
Есть замечание про this на схеме "calling a normal function" а случае если это не dot-нотация нужна еще одна развилка: используется строгий режим (например в модуле, или указанный вручную) или нет. Т.к. this === undefined в этом сценарии только в строгом режиме. В нестрогом там будет globalThis.
Это, конечно, есть на схеме "in script or module", но лучше было еще раз уточнить этот момент. да и важно не то, модуль это или нет, а именно строгий или используется режим. если включить строгий режим в скрипте без модуля, то так же получим undefined.
В примере на замыкания ошибочка. На собесе бы за такое зацепились ))
Первый вызов counter() вернет 0, т.к. у нас там постинкремент. вот если бы в возвращаемой функции было return ++count, тогда все бы соответсвовало логам.
Привет! Спасибо тебе большое за фидбек, замечания более чем уместные, со всеми соглашусь)
очень круто сделал. очень глубоко разобрал каждый вопрос. т.е. ты именно разобрал вопрос, дал понимание почему так, а не тупо сказал что это так. респект
Нужно такое же видео по angular)
Супер полезно, давно ждал) Еще бы такое же по ангуляру
Спасибо! По ангуляру обязательно выпущу аналогичное видео)
@@vladimirlebedev00010 ждём!
Крутое видео, большую часть вопросов отсюда действительно спрашивали (хожу по собесам уже несколько месяцев, завтра очередной). Спасибо за контент)
Спасибо! Удачи на собеседованиях!)
И что никуда не берут 😮
@@y6uwа думаете так легко устроиться и вас сразу возьмут
@@user-sv5fz2bv7z не знаю как сейчас. Давно не проходил. Сколько уже собесов без офера?
Спасибо!
1. Примитивы тоже передаются по ссылке, а не по значению. Это легко заметить, если переменную с огромным стрингом отправить в качестве параметра в функцию: размер кучи не поменяется.
2. Псевдомассив arguments де-факто deprecated. Используй метод rest вместо: (...args)
Спасибо!
Спасибо за видео. Поправка, рендер делается после выполнения микротасок, а не после макро
Спасибо! А можно ссылочку на источник, пожалуйста? Ознакомился бы с удовольствием)
@@vladimirlebedev00010 на learn js страница event-loop, там заголовок микро и макрозадачи. Ютуб ссылки удаляет
Классное видео!
00:24:15 У меня тут мозг оплавился. VAR "вспылыл". Далее в стек вызовов помещается цикл, при каждой итерации, сеттаймаут попадает в макрозадачи. После выполнения цикла, у нас в очереди макрозадач 10 сеттаймаутов. После завершения цикла у нас i = 10. Далее выполняются микрозадачи (промисы). После опустошения стека вызовов, выполняются макрозадачи. Первый Сеттаймаут кладет консоль лог в стек вызовов, стек вызовов выполняет его и выводит i=10. Стек вызовов пустой - выполняется следующий сеттаймаут.
Откройте форточки перед включением видоса или включите кандер на максимум, а то задохнетесь от духоты. Лайк поставил)
Супер полезно
В использовании var iife получила undefined 10 раз
Привет! А попробуй точь-в-точь скопировать пример из видео)
БАЗА!
1:29:50 опечатка, атрибут не defer, a async
Мурыч бы оценил)
1:39:42 разве асинхронность работает в forEach ? Похоже на ошибку
Почему нет? Он принимает коллбек, вполне им может быть асинхронная функция)
хороший урок
и это на джуна?
В целом на любой грейд одни и те же вопросы задают