Полный гайд по JavaScript собеседованию. Все в 1 видео!
Вставка
- Опубліковано 2 чер 2024
- Эксклюзивный контент в Telegram: t.me/NextgenSocialBot
Исходники тут: t.me/js_by_vladilen/131
Telegram: t.me/js_by_vladilen
Instagram: / vladilen.minin
Roadmap по каналу:
vladilen.notion.site/Roadmap-...
JavaScript полный курс, где в одном видео вы узнаете и повторите все "сложные" элементы, которые спрашивают на собеседовании
JavaScript интервью. Полное пособие (типы данных, контекст, прототипы и другое)
В видео я разберу множество тем для прохождения интервью на JavaScript. Будет разобрано 11 тем:
1. Типы данных в JavaScript 00:00
2. Значения и ссылки 25:32
3. Как работает Scope 29:38
4. Что такое Hoisting 33:45
5. Переменные Let const 39:30
6. Замыкания 47:09
7. Что такое IIFE 59:33
8. Контекст 1:03:53
9. Как работает new 1:17:17
10. Как работают прототипы 1:21:25
11. Асинхронность 1:34:38
Сложный JavaScript простым языком:
• Урок 1. JavaScript. Чт...
#javascript #js
Эксклюзивный контент на моем Boosty: boosty.to/vladilen
Исходники тут: t.me/js_by_vladilen/131
Есть некоторые неточности и замечания по курсу, а некоторые вещи можно ещё проще рассказать.
`` - вот такие обратные кавычки это не просто "литерал", а это "литерал шаблонной строки" или просто "шаблонный литерал", так же как [] - литерал массива (new Array), или {} - литерал объекта (new Object), или /something/ - литерал регулярного выражения (new RegExp('something')) и т.п.
Кстати, двойные и ординарные кавычки (вместе со всем что внутри них находится) - это тоже литерал... литерал строки или "строковый литерал".
Типы бывают двух основных видов: примитивы (простые типы: строки, числа и т.п.) и комплексные (не простые: объекты, массивы, инстансы классов и т.п.). Примитивы делятся ещё на 2 категории: примитивы, которые ведут себя как объекты (number, string) и самые настоящие простые типы (null, boolean).
Про "плюс" и "минус" тоже как-то сложно. Просто плюс может использоваться как арифметический оператор, так и не арифметический (конкатенация), а какое поведение будет выбрано - зависит от типов членов выражения. Объяснение проще: конкатенация строк (не арифметическая операция) может быть выполнена при помощи "плюса", если в выражении есть член с типом String, то будет выполнена конкатенация (в случае если тип не String и не Numer, то будет выполнена опять таки конкатенация, но с предварительной сериализацией значения - записи значения в виде строки). Во всех остальных случаях (деление, вычитание, умножение - чисто арифметические операции) будет выполнена попытка привести к типу Number все члены выражения.
Про сравнение с объектом такая же история, как и описана выше - при неявном сравнении со строкой другие значения с типом не String сериализцются. Просто пустой массив сериализуется в пустую строку, а "пустой" объект сериализуется в строку со значением '[object Object]'. Для нагляндости можно поиграться с:
String({})
String([])
String([1])
String([1, 2, 3])
Насчёт сравнения a===b, a===c: не совсем, там ничего при приведении не несовпадает. При использовании строгого сравнения (при сравнении двух значений с комплексными типами) сравниваются идентификаторы ссылок. Если идентификаторы совпадают, то true, если не совпадают, то false. При сравнении двух комплексных типов срваниваются не их значения, а ссылки (а точнее идентификаторы ссылок).
Можно ощутить разницу поигравшись с:
const o = {}
o == '[object Object]'
// = true // т.к. одно из значений String, то другое, не строковое значение сериализуется
o === '[object Object]' // = false // а тут сериализация не происходит, т.к. сравнение строгое
[1, 2, 3] === [1, 2, 3] // = false // тут сравниваются 2 разных объекта (мы их создали "на лету")
'1,2,3' == [1, 2, 3] // = true // тут происходит сериализация значния справа
{} === {} // = false // тут 2 разных объекта, хоть они и имеют одинаковое содержимое
o === o // = true // тут сравнение объекта с самим собой
Некоторые вещи становятся проще, если их называть на родном для вас языке. Дело в том, что для англоговорящих людей это именно так и происходит, чаще всего они понимают суть какого-то определения/процесса из его названия. Новичкам надо объяснять именно так, как мне кажется, оно так интуитивно понятнее. Например,
Скоуп (scope) - область видимости (намного больше объясняет, чем "скоуп").
Хойстинг (hoising) - подъём, а в русском языке это принято называть "всплывание" или "всплытие". Так же намного понятнее, чем "хойстинг", вся суть в названии.
Переассаин (reassigning) - переопределение или переназначение.
Можно ещё посвятить новичка в разницу между isNaN и Number.isNaN :)
Дай Б-г тебе здоровья, добрый человек.
Спасибо! Не совсем, впрочем, понятно тогда такое поведение:
{} == {} // = false
То есть не происходит сериализации {} в '[object Object]', а сравнение происходит по идентификаторам ссылок?
@@xxxxrat конечно
Кто ты воин?) У вас есть статьи или что нибудь? С удовольствием бы почитал.
Спасибо, думал все эти недочеты Владилена вручную искать, так как видео и объяснение крайне скупое, а самое главное не объясняет почему так происходит (а это спрашивают на собесах), типа просто запомните
"Js за час" здорового человека)
Этого не хватит
@@user-ve8om5zg3s Если ты сделал тестовое задание хорошо, то 70 процентов вопросов на собеседовании скорее всего отвалятся
@@nickstojanovic9663 в нормальных конторах прежде идет собеседование, потом уже тестовое. В очень нормальных конторах идет сначала собеседование, потом тестовое, а потом второе собеседование.
@@austinpowers7030 я говорил о собственном опыте, рассматривая исключительно удаленку. Но спасибо за дополнение.
@@austinpowers7030 в нормальные конторы должно висеть по 300 апликантов и с каждым из них никто проводить собеседование не будет, первым всегда должен идти тест если контора действительно нормальная
При приведении типов во время сравнения через == важно помнить 2 вещи которые помогут предсказать результат
1. Представьте что вы приводите все к Number, типа Number(a) == Number(b)
2. Помните что undefined, null, {} и Symbol - это не значения - это типы. По сути по значению тут вообще нечего сравнивать так как значений нет.
Вот почему
[]==false => true Number([]) - 0, Number(false) - 0
Но
{}==false => false {} - это тип, тут нет значени,
null==false => false null - это тип, тут нет значени,
Я не уверне в том насколько это близко к правде, но это помогает запомнить все эти задачи с сравнением
Спустя уже почти 4 года видео все еще актуально и все еще проясняет очень многое. Спасибо огромное Владилен, за ваши старания в нашу пользу.
Но актуальность стоит проверять перед собесом, например типов уже 8, bigInt не хватает
Владлен! Спасибо за твой труд! То, что ты делаешь мне очень нравится и помогает!
Спасибо за видос, что-то освежил в памяти, что-то узнал новое.
Супер, как раз смотрел твои уроки по Ангуляру, дай думаю на ютубе чет гляну, а тут вот на это видео наткнулся да еще и материал интересный и застрял))), спасибо)
Большое спасибо за такие уроки, все понятно и становится по своим полочкам в голове.
Автору видео желаю удачу и чтоб у него все исполнялось, ведь просто так выпускать видео и такие хорошие не все могут
Спасибо, Владилен! Очень много классного контента на твоем канале. Простыми словами о сложном!!!
Владилен, всё с толком объясняет. Понятно и доходчего. Спасибо за нелёгкий труд. 💪
Прекрасная подача материала! Получил большое удовольствие от просмотра. Благодарю. :)
Спасибо огромное! Ваш труд очень помогает! Замечательная подача, нет "воды". Отличное пособие чтобы повторять язык JS в дороге или на выходных в свободные часы.
Вселенское Вам спасибо! Очень все чётко изложено )
Ничего нового не узнал, но для повторения это идеально! Всё в одном месте собрано. Круто. А для тех кто только начинает изучать - это видео просто находка!
Очень полезно,чтобы освежить знания и что-то вспомнить.Спасибо,Владилен!
Владилен, спасибо огромное за твой труд.
Ты в моём личном топе, напару с диманом из ИТ камасутры. Респект вам за годный контент.
@Metal Head Откуда такая агрессия? Тебя недолюбили?
@@MakcoH1998 скорее перелюбили, во все щели
Вот прям +
Сенсея называть бы с большой буквы)
+++
Спасибо большое за полезную видео, ждем новых!
очень познавательный канал и автор объясняет все очень простыми и понятными словами. Даже на 1.5х все очень понятно
Спасибо огромное! Очень, очень вовремя:)
Хороший контент, по нему готовлюсь к собесу, в принципе многое знаешь, но иногда не всегда помнишь, что то забывается, что то на автомате делается - важно напомнить себе и проверить свои знания. Большое спасибо тебе
Владилен, считаю, что при объяснении setTimeout в цикле нужно было бы также упомянуть, что при использовании let на каждую итерацию создается абсолютно новая переменная, в то время как переменная, объявленная через var, -- одна на весь цикл, и при каждой итерации изменяется только ее значение, в чем, собственно, и кроется фишка этого примера. А так все очень круто и доступно, спасибо!
Спасибо за полезный материал, как и во всех ваших видео - четкий, доступный материал, без воды в приятной манере изложения материала, которую легко воспринимать на слух.
2:35 Типи
10:30 Приведение типов
25:28 Значения
29:40 Область видимости
33:42 Поднятие
37:24 Объявление функций
39:28 let и const
47:10 Замыкание
59:39 IIFE
1:03:54 Контекст
1:17:16 New
1:21:30 Прототипы
1:34:38 Асинхронность
С вами я сильно продвинул свой скилл по js . Большое вам спасибо за столь полезный контент.
Супер видео! Низкий поклон и поддержка!
Спасибо! Как всегда кратко и по сути. Ждем еще
Спасибо большое! Один из лучших русскоязычных каналов по теме на ютубе
Спасибо большое за крутую собранную информацию, дай бог пройду успешно свое собеседование после данного ролика
Спасибо то что делитесь знаниями.
Супер подача. Без воды, кратко, хорошие примеры. Спасибо за ваши уроки и курсы!
Большое спасибо за краткий и практически полезный разбор JS на примерах. Случайно к Вам попал, но это именно то, что надо :)
Очень много полезного материала, спасибо!
Мужик, добра тебе, очень информативно и понятно)
Владилен ты красавчик, такой крутой и длинный ролик снял. :)
Очередное собеседование и я здесь) Спасибо, Владилен!
Да прибудет с тобой сила Владилен)Спасибо)
Спасибо, все очень понятно. Хорошо посмотреть, что бы все вспомнить
как же приятно слушать) Все ясно, просто, хорошие примеры, без воды, в комфортном темпе. Спасибо за уроки!
Вот только varyable произносится немного по другому
Отличное объяснение тем. Особенно понравилось объяснение замыкания, c этим всегда были проблемы. Большое спасибо за труд.
Спасибо большое за столь полезный контент!
Спасибо, Владилен! Очень познавательно и не нужно тратить время на книгу.
отлично расписано, всё чётко, всё необходимое
Спасибо, все это очень полезно, освежил знания по Js за полтора часа!
Шикарное объяснение замыканий. Спасибо
Ловите таймкоды:
1. Типы данных в JavaScript 04:25
2. Значения и ссылки 25:32
3. Как работает Scope 29:38
4. Что такое Hoisting 33:45
5. Переменные Let const 39:30
6. Замыкания 47:09
7. Что такое IIFE 59:33
8. Контекст 1:03:53
9. Как работает new 1:17:17
10. Как работают прототипы 1:21:25
11. Асинхронность 1:34:38
Владилен расскажи по NodЕ req/res и т.д. нигде толком ничего нет
У меня на канале есть нода за час. Там и проясняю
в асинхронности не хватает несколько важных вещей: таски и микротаски, эвентлуп подробнее, туда же можно промисы, async-await, очень важно для понимания псевдоасихнронности js (что на клиенте, что в nodejs). Очень много ошибок с этим у ребят связано.
@@NemiroIlia На канале есть более подробные видео по этим темам
Владилен Минин одно другому не мешает, тут же «полное пособие». Понимание работы эвентлупа и асинхронности очень важный аспект js, поэтому и не хватает именно в этом видео. То что отдельно есть - отлично
Владилен, очень помогло твое видео при подготовке к собеседованию. Спасибо :)
Спасибо мужик, ты очень крутой! Лайки и вечная подписка тебе
Владилен, спасибо за толковое видео.
Спасибо автор! Держи подписку) Все в понятной и доступной форме
Спасибо большое, за доступное разъяснение JS!!! Только что UA-cam предложил ваши видео, теперь смогу точно разобраться в JS!!! Спасибо большое ещё раз, вы супер!
Прошла уже собес?
Отличный урок, никакой воды! Спасибо!
четкое видео ! я пришел с java/c# в js и как раз данное видео именно то, что нужно чтобы войти в курс дела
Спасибо, полезно повторить концептуальную информацию!!
Я очень сильно тебя благодарю за такую возможность подойти ближе к собеседованию!))
Отличное пояснение материала!!! Спасибо!!!
Чувак, ты находка в русском ютубе
Привет, сделай список топовых вопросов на собеседовании, а также ответов на них. Это будет очень круто.
Спасибо! Как раз понадобился список вопросов для собеседования )
огромное спасибо! Желаю успехов
Спасибо, отличная подача материала
Как всегда ,Владилен лучший. Очень понятно объясняет, всё по полочкам. Единственное как мне кажется не хватает одной главы про промисы и может быть ещё одной главы про работу с сервером(GET,POST,PUT,DELETE), но это моё субъективное мнение. Спасибо ещё раз за твой контент!
Очень доступно и понятно! Спасибо :)
Все четко, по факту, проффесионально, без воды, смотрел не отрываясь!
sposibo ogromnoe ! kupil vash kurs po Excel ochen nravitsya no i slojno esli chestno !!
У тебя супер полезный контент и просто талант объяснять всё доходчиво!
Я про все концепции, о которых идёт речь в видео, знала, но с удовольствием посмотрела для закрепления и выяснения нюансов.
Огромное спасибо за этот труд, ты -- алмаз :)
А ты изумруд))!!
Спасибо, было интересно и полезно!
Спасибо вам большое за ваш труд
Спасибо большое! От души просто!
Какой же Вы крутой, Владилен! Спасибо огромное! После 4 месяцев первой работы как фулстак хочу перейти только на JS(React) и сейчас собираюсь готовиться к собеседованиям, поэтому Ваш урок оч оч оч полезен
А на бэке какой язык был?
Спасибо , как всегда Лучший
Очень круто! Спасибо!
Спасибо Владилен! Можно в следующих выпусках масштабировать экран покрупнее, пожалуйста!
лучший видос для подготовки к собесу! спасибо!
Спасибо огромное!!! Ты красаучег!!
Круто! Очень круто! Можно еще добавить про методы массивов, это частенько спрашивают на собесах
величезна подяка за інформативність! 🐱👤🙌
Блен, какой же офигенно качественный материал на твоем канале :)
Благодарю, стараюсь)
Крут! Учусь сейчас на курсах и нам дали тестовые вопросы для тестового собеса - ты осветил процентов 80!
Я нубас полнейший!) Как же черт возьми круто! Владилен, огромное человеческое спасибо! Топ контент!
Спасибо!!! Очень содержательно
Смотрел твой курс по Vue/Nuxt, где ты периодически тихонько матерился в микрофон, когда что-то не получалось. Было ощущение, что просто забыл вырезать)) Всё ждал, будет ли здесь такое)) А в целом - огромное спасибо, отличная подборка!
Отличное видео часто пересматриваю перед собедованием
Очень помогает вспомнить некоторые моменты! )
Спасибо за хорошее видео мне помогло разобраться!
Огромное спасибо, очень полезно
Как раз готовлюсь к грядущим собеседованиям. Спасибо за видео!
Удачного прохождения интервью )
Спасибо за уроки. На русском ютубе можно сказать уникальный контент делаешь! Очень надеюсь что не забросишь канал и будет ещё больше роликов. В том числе очень буду ждать по vue 3. Скоро кстати релиз)
Не забросил)
Владилен, ты - боженька!:)
Очень хорошо спасибо за информацию
Спасибо за видео ,ты крут)))
9:48 Добавлю от себя об одном очень важном аспекте разницы между null и undefined: в случае, если у функции есть параметр по умолчанию, и вызвать эту функцию, передав значение данного параметра undefined, то будет использован параметр по умолчанию, а если null - тогда null. Например:
const fn = (value = 5) => value;
console.log(fn(), fn(undefined), fn(null)); // 5 5 null
Очень понятно, спасибо! За час обобщил свои знания
Спасибо за видео🔥🔥🔥
спасибо !!! это лучше, что было со мной )))
Владилен, спасибо большое за видеоролик. Вчера был на собеседовании, и меня спрашивали буквально по каждой теме из этого ролика. Твой ролик очень мне помог. Очень хороший материал для подготовки к собесу. Обращаюсь к тем, кто будет проходить собесы, помимо этих тем повторите темы с промисами, а также подробнее рассмотрите концепт работы Event Loop
Про ивентлуп на канале отдельный ролик
отличное видео. приятно слушать
Спасибо! Четко и по делу