Ловите таймкоды: 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
в асинхронности не хватает несколько важных вещей: таски и микротаски, эвентлуп подробнее, туда же можно промисы, async-await, очень важно для понимания псевдоасихнронности js (что на клиенте, что в nodejs). Очень много ошибок с этим у ребят связано.
Владилен Минин одно другому не мешает, тут же «полное пособие». Понимание работы эвентлупа и асинхронности очень важный аспект js, поэтому и не хватает именно в этом видео. То что отдельно есть - отлично
Есть некоторые неточности и замечания по курсу, а некоторые вещи можно ещё проще рассказать. `` - вот такие обратные кавычки это не просто "литерал", а это "литерал шаблонной строки" или просто "шаблонный литерал", так же как [] - литерал массива (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]', а сравнение происходит по идентификаторам ссылок?
Спасибо, думал все эти недочеты Владилена вручную искать, так как видео и объяснение крайне скупое, а самое главное не объясняет почему так происходит (а это спрашивают на собесах), типа просто запомните
Ничего нового не узнал, но для повторения это идеально! Всё в одном месте собрано. Круто. А для тех кто только начинает изучать - это видео просто находка!
При приведении типов во время сравнения через == важно помнить 2 вещи которые помогут предсказать результат 1. Представьте что вы приводите все к Number, типа Number(a) == Number(b) 2. Помните что undefined, null, {} и Symbol - это не значения - это типы. По сути по значению тут вообще нечего сравнивать так как значений нет. Вот почему []==false => true Number([]) - 0, Number(false) - 0 Но {}==false => false {} - это тип, тут нет значени, null==false => false null - это тип, тут нет значени, Я не уверне в том насколько это близко к правде, но это помогает запомнить все эти задачи с сравнением
@@nickstojanovic9663 в нормальных конторах прежде идет собеседование, потом уже тестовое. В очень нормальных конторах идет сначала собеседование, потом тестовое, а потом второе собеседование.
@@austinpowers7030 в нормальные конторы должно висеть по 300 апликантов и с каждым из них никто проводить собеседование не будет, первым всегда должен идти тест если контора действительно нормальная
Владилен, считаю, что при объяснении setTimeout в цикле нужно было бы также упомянуть, что при использовании let на каждую итерацию создается абсолютно новая переменная, в то время как переменная, объявленная через var, -- одна на весь цикл, и при каждой итерации изменяется только ее значение, в чем, собственно, и кроется фишка этого примера. А так все очень круто и доступно, спасибо!
Владилен, если Вы читаете это - моя огромная благодарность! Я успешно прошёл своё первое техинтервью и получил свою первую работу, главным образом - благодаря урокам из Вашего плейлиста "Сложный JavaScript простым языком". Данное видео также очень помогло повторить изученное.
9:48 Добавлю от себя об одном очень важном аспекте разницы между null и undefined: в случае, если у функции есть параметр по умолчанию, и вызвать эту функцию, передав значение данного параметра undefined, то будет использован параметр по умолчанию, а если null - тогда null. Например: const fn = (value = 5) => value; console.log(fn(), fn(undefined), fn(null)); // 5 5 null
Спасибо огромное! Ваш труд очень помогает! Замечательная подача, нет "воды". Отличное пособие чтобы повторять язык JS в дороге или на выходных в свободные часы.
Спасибо большое, за доступное разъяснение JS!!! Только что UA-cam предложил ваши видео, теперь смогу точно разобраться в JS!!! Спасибо большое ещё раз, вы супер!
Смотрел твой курс по Vue/Nuxt, где ты периодически тихонько матерился в микрофон, когда что-то не получалось. Было ощущение, что просто забыл вырезать)) Всё ждал, будет ли здесь такое)) А в целом - огромное спасибо, отличная подборка!
Как всегда ,Владилен лучший. Очень понятно объясняет, всё по полочкам. Единственное как мне кажется не хватает одной главы про промисы и может быть ещё одной главы про работу с сервером(GET,POST,PUT,DELETE), но это моё субъективное мнение. Спасибо ещё раз за твой контент!
Не соглашусь. Короткие ролики очень удобно воспринимать как раз потому что есть быстрая завершённость. Далеко не всегда хочется иметь дело с длинным потоком новых данных.
@@mikeistp5736 это дело вкуса. Всегда будут те, кому нравится и те кому нет. Много людей записывают короткие ролики, а длинные - нет, поэтому автора видео хочется отдельно поблагодарить. Да и тема же - прохождение интервью, это не подразумевает изучить что-то с нуля, а скорее просто освежить память
Владилен, спасибо большое за видеоролик. Вчера был на собеседовании, и меня спрашивали буквально по каждой теме из этого ролика. Твой ролик очень мне помог. Очень хороший материал для подготовки к собесу. Обращаюсь к тем, кто будет проходить собесы, помимо этих тем повторите темы с промисами, а также подробнее рассмотрите концепт работы Event Loop
Спасибо за уроки. На русском ютубе можно сказать уникальный контент делаешь! Очень надеюсь что не забросишь канал и будет ещё больше роликов. В том числе очень буду ждать по vue 3. Скоро кстати релиз)
Хороший контент, по нему готовлюсь к собесу, в принципе многое знаешь, но иногда не всегда помнишь, что то забывается, что то на автомате делается - важно напомнить себе и проверить свои знания. Большое спасибо тебе
Контент ОГОНЬ!! Как раз для тех (как я ), кто думал, что изучил JS и пошел на собесы, и его там резко опускают на землю, а этот ролик проясняет очень многие из заданных там вопросов. Автору огромная благодарность!!!
Супер, как раз смотрел твои уроки по Ангуляру, дай думаю на ютубе чет гляну, а тут вот на это видео наткнулся да еще и материал интересный и застрял))), спасибо)
Спасибо за полезный материал, как и во всех ваших видео - четкий, доступный материал, без воды в приятной манере изложения материала, которую легко воспринимать на слух.
У тебя супер полезный контент и просто талант объяснять всё доходчиво! Я про все концепции, о которых идёт речь в видео, знала, но с удовольствием посмотрела для закрепления и выяснения нюансов. Огромное спасибо за этот труд, ты -- алмаз :)
Какой же Вы крутой, Владилен! Спасибо огромное! После 4 месяцев первой работы как фулстак хочу перейти только на JS(React) и сейчас собираюсь готовиться к собеседованиям, поэтому Ваш урок оч оч оч полезен
NaN это действительно number, number не обязан представлять только цифры. NaN это представитель чисел с плавающей запятой, поддерживается на аппаратном уровне, в компьютерах есть специальные процессоры для чисел float и NaN один из возможных его результатов.
(27:55) ... неточность: в переменной 'b' хранится ссылка на переменную 'a'. Это не совсем верно, что легко проверить, если зададим: 'a = undefined'. Тогда увидим, что: 'a -- undefined' ...... (переменная 'a' утратила ссылку на массив) 'b = [1, 2, 3, 4] ...... (переменная 'b' сохранила ссылку на массив) То есть, обе переменные ссылались на один участок памяти: 'a' --> 'memory_area', 'b' --> 'memory_area'. поэтому, когда переменная 'a' потеряла ссылку на участок памяти ('a = undefined'), переменная 'b' продолжила ссылаться на тот же самый участок памяти независимо от состояния ссылки от переменной 'a'.
Эксклюзивный контент на моем Boosty: boosty.to/vladilen
Исходники тут: t.me/js_by_vladilen/131
Спустя уже почти 4 года видео все еще актуально и все еще проясняет очень многое. Спасибо огромное Владилен, за ваши старания в нашу пользу.
Но актуальность стоит проверять перед собесом, например типов уже 8, bigInt не хватает
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 Асинхронность
Ловите таймкоды:
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). Очень много ошибок с этим у ребят связано.
@@inemiro На канале есть более подробные видео по этим темам
Владилен Минин одно другому не мешает, тут же «полное пособие». Понимание работы эвентлупа и асинхронности очень важный аспект js, поэтому и не хватает именно в этом видео. То что отдельно есть - отлично
Есть некоторые неточности и замечания по курсу, а некоторые вещи можно ещё проще рассказать.
`` - вот такие обратные кавычки это не просто "литерал", а это "литерал шаблонной строки" или просто "шаблонный литерал", так же как [] - литерал массива (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 конечно
Кто ты воин?) У вас есть статьи или что нибудь? С удовольствием бы почитал.
Спасибо, думал все эти недочеты Владилена вручную искать, так как видео и объяснение крайне скупое, а самое главное не объясняет почему так происходит (а это спрашивают на собесах), типа просто запомните
Ничего нового не узнал, но для повторения это идеально! Всё в одном месте собрано. Круто. А для тех кто только начинает изучать - это видео просто находка!
При приведении типов во время сравнения через == важно помнить 2 вещи которые помогут предсказать результат
1. Представьте что вы приводите все к Number, типа Number(a) == Number(b)
2. Помните что undefined, null, {} и Symbol - это не значения - это типы. По сути по значению тут вообще нечего сравнивать так как значений нет.
Вот почему
[]==false => true Number([]) - 0, Number(false) - 0
Но
{}==false => false {} - это тип, тут нет значени,
null==false => false null - это тип, тут нет значени,
Я не уверне в том насколько это близко к правде, но это помогает запомнить все эти задачи с сравнением
Ты в моём личном топе, напару с диманом из ИТ камасутры. Респект вам за годный контент.
@Metal Head Откуда такая агрессия? Тебя недолюбили?
@@MakcoH1998 скорее перелюбили, во все щели
Вот прям +
Сенсея называть бы с большой буквы)
+++
как же приятно слушать) Все ясно, просто, хорошие примеры, без воды, в комфортном темпе. Спасибо за уроки!
Вот только varyable произносится немного по другому
"Js за час" здорового человека)
Этого не хватит
@@ЕвгенийПанкратов-г5ь Если ты сделал тестовое задание хорошо, то 70 процентов вопросов на собеседовании скорее всего отвалятся
@@nickstojanovic9663 в нормальных конторах прежде идет собеседование, потом уже тестовое. В очень нормальных конторах идет сначала собеседование, потом тестовое, а потом второе собеседование.
@@austinpowers7030 я говорил о собственном опыте, рассматривая исключительно удаленку. Но спасибо за дополнение.
@@austinpowers7030 в нормальные конторы должно висеть по 300 апликантов и с каждым из них никто проводить собеседование не будет, первым всегда должен идти тест если контора действительно нормальная
Автору видео желаю удачу и чтоб у него все исполнялось, ведь просто так выпускать видео и такие хорошие не все могут
Владилен, считаю, что при объяснении setTimeout в цикле нужно было бы также упомянуть, что при использовании let на каждую итерацию создается абсолютно новая переменная, в то время как переменная, объявленная через var, -- одна на весь цикл, и при каждой итерации изменяется только ее значение, в чем, собственно, и кроется фишка этого примера. А так все очень круто и доступно, спасибо!
Владилен, если Вы читаете это - моя огромная благодарность! Я успешно прошёл своё первое техинтервью и получил свою первую работу, главным образом - благодаря урокам из Вашего плейлиста "Сложный JavaScript простым языком". Данное видео также очень помогло повторить изученное.
Привет) Поздарвяю тебя, так держать!) Если не секрет, сколько у тебя заняло обучение, и насколько трудные были вопросы на интервью?
Чувак, ты находка в русском ютубе
Я очень сильно тебя благодарю за такую возможность подойти ближе к собеседованию!))
9:48 Добавлю от себя об одном очень важном аспекте разницы между null и undefined: в случае, если у функции есть параметр по умолчанию, и вызвать эту функцию, передав значение данного параметра undefined, то будет использован параметр по умолчанию, а если null - тогда null. Например:
const fn = (value = 5) => value;
console.log(fn(), fn(undefined), fn(null)); // 5 5 null
Спасибо большое! Один из лучших русскоязычных каналов по теме на ютубе
Спасибо огромное! Ваш труд очень помогает! Замечательная подача, нет "воды". Отличное пособие чтобы повторять язык JS в дороге или на выходных в свободные часы.
С вами я сильно продвинул свой скилл по js . Большое вам спасибо за столь полезный контент.
Спасибо большое, за доступное разъяснение JS!!! Только что UA-cam предложил ваши видео, теперь смогу точно разобраться в JS!!! Спасибо большое ещё раз, вы супер!
Прошла уже собес?
Очередное собеседование и я здесь) Спасибо, Владилен!
Смотрел твой курс по Vue/Nuxt, где ты периодически тихонько матерился в микрофон, когда что-то не получалось. Было ощущение, что просто забыл вырезать)) Всё ждал, будет ли здесь такое)) А в целом - огромное спасибо, отличная подборка!
Привет, сделай список топовых вопросов на собеседовании, а также ответов на них. Это будет очень круто.
очень познавательный канал и автор объясняет все очень простыми и понятными словами. Даже на 1.5х все очень понятно
Владилен, всё с толком объясняет. Понятно и доходчего. Спасибо за нелёгкий труд. 💪
Как всегда ,Владилен лучший. Очень понятно объясняет, всё по полочкам. Единственное как мне кажется не хватает одной главы про промисы и может быть ещё одной главы про работу с сервером(GET,POST,PUT,DELETE), но это моё субъективное мнение. Спасибо ещё раз за твой контент!
Да прибудет с тобой сила Владилен)Спасибо)
Прекрасная подача материала! Получил большое удовольствие от просмотра. Благодарю. :)
Спасибо, что делаешь длинные ролики, а не огромное кол-во 5/10-минутных. Проще посмотреть 1 видео, чем 10 :) и тема очень актуальная
Не соглашусь. Короткие ролики очень удобно воспринимать как раз потому что есть быстрая завершённость. Далеко не всегда хочется иметь дело с длинным потоком новых данных.
@@mikeistp5736 это дело вкуса. Всегда будут те, кому нравится и те кому нет. Много людей записывают короткие ролики, а длинные - нет, поэтому автора видео хочется отдельно поблагодарить. Да и тема же - прохождение интервью, это не подразумевает изучить что-то с нуля, а скорее просто освежить память
@@mikeistp5736 Я пояснял в телеграм почему буду стараться делать ролики длинными на ютубе. Все из-за его алгоритмов
Я нубас полнейший!) Как же черт возьми круто! Владилен, огромное человеческое спасибо! Топ контент!
Супер подача. Без воды, кратко, хорошие примеры. Спасибо за ваши уроки и курсы!
Владилен, спасибо большое за видеоролик. Вчера был на собеседовании, и меня спрашивали буквально по каждой теме из этого ролика. Твой ролик очень мне помог. Очень хороший материал для подготовки к собесу. Обращаюсь к тем, кто будет проходить собесы, помимо этих тем повторите темы с промисами, а также подробнее рассмотрите концепт работы Event Loop
Про ивентлуп на канале отдельный ролик
Спасибо большое за крутую собранную информацию, дай бог пройду успешно свое собеседование после данного ролика
1:04:04 Что такое контекст? "Я в уме - ну это тоже самое что и scope".
Владилен: Зачастую контекст часто путают с таким понятием как scope..
лол))
аналогично
Владилен, спасибо огромное за твой труд.
Спасибо! Как всегда кратко и по сути. Ждем еще
В JavaScript есть 8 основных типов данных.
null,
undifined,
boolean,
number,
string,
symbol
object
bigint. ( для целых чисел произвольной длины. )
На вопрос:
Какие типы данных существуют в js (Стандарт языка ES6)
Мне чатгпт ответил:
boolean, string, number, undefined, null, symbol😅
Большое спасибо за краткий и практически полезный разбор JS на примерах. Случайно к Вам попал, но это именно то, что надо :)
Спасибо за уроки. На русском ютубе можно сказать уникальный контент делаешь! Очень надеюсь что не забросишь канал и будет ещё больше роликов. В том числе очень буду ждать по vue 3. Скоро кстати релиз)
Не забросил)
Спасибо, все это очень полезно, освежил знания по Js за полтора часа!
Отличное объяснение тем. Особенно понравилось объяснение замыкания, c этим всегда были проблемы. Большое спасибо за труд.
Мужик, добра тебе, очень информативно и понятно)
Спасибо, Владилен! Очень много классного контента на твоем канале. Простыми словами о сложном!!!
Хороший контент, по нему готовлюсь к собесу, в принципе многое знаешь, но иногда не всегда помнишь, что то забывается, что то на автомате делается - важно напомнить себе и проверить свои знания. Большое спасибо тебе
Владлен! Спасибо за твой труд! То, что ты делаешь мне очень нравится и помогает!
Очень полезно,чтобы освежить знания и что-то вспомнить.Спасибо,Владилен!
Вселенское Вам спасибо! Очень все чётко изложено )
Все четко, по факту, проффесионально, без воды, смотрел не отрываясь!
Блен, какой же офигенно качественный материал на твоем канале :)
Благодарю, стараюсь)
Супер видео! Низкий поклон и поддержка!
Владилен, очень помогло твое видео при подготовке к собеседованию. Спасибо :)
Крут! Учусь сейчас на курсах и нам дали тестовые вопросы для тестового собеса - ты осветил процентов 80!
Спасибо огромное! Очень, очень вовремя:)
Спасибо за видос, что-то освежил в памяти, что-то узнал новое.
Контент ОГОНЬ!! Как раз для тех (как я ), кто думал, что изучил JS и пошел на собесы, и его там резко опускают на землю, а этот ролик проясняет очень многие из заданных там вопросов. Автору огромная благодарность!!!
Большое спасибо за такие уроки, все понятно и становится по своим полочкам в голове.
Спасибо большое за полезную видео, ждем новых!
четкое видео ! я пришел с java/c# в js и как раз данное видео именно то, что нужно чтобы войти в курс дела
Спасибо, все очень понятно. Хорошо посмотреть, что бы все вспомнить
лучший видос для подготовки к собесу! спасибо!
Спасибо большое за столь полезный контент!
Супер, как раз смотрел твои уроки по Ангуляру, дай думаю на ютубе чет гляну, а тут вот на это видео наткнулся да еще и материал интересный и застрял))), спасибо)
Спасибо за полезный материал, как и во всех ваших видео - четкий, доступный материал, без воды в приятной манере изложения материала, которую легко воспринимать на слух.
Очень много полезного материала, спасибо!
Владилен ты красавчик, такой крутой и длинный ролик снял. :)
У тебя супер полезный контент и просто талант объяснять всё доходчиво!
Я про все концепции, о которых идёт речь в видео, знала, но с удовольствием посмотрела для закрепления и выяснения нюансов.
Огромное спасибо за этот труд, ты -- алмаз :)
А ты изумруд))!!
Какой же Вы крутой, Владилен! Спасибо огромное! После 4 месяцев первой работы как фулстак хочу перейти только на JS(React) и сейчас собираюсь готовиться к собеседованиям, поэтому Ваш урок оч оч оч полезен
А на бэке какой язык был?
величезна подяка за інформативність! 🐱👤🙌
Владилен, ты - боженька!:)
sposibo ogromnoe ! kupil vash kurs po Excel ochen nravitsya no i slojno esli chestno !!
Спасибо большое, Каждое видео в котором есть польза я награждаю лайком, Твои видео все полезные)
Стал уже разработчиком?
Спасибо то что делитесь знаниями.
NaN это действительно number, number не обязан представлять только цифры. NaN это представитель чисел с плавающей запятой, поддерживается на аппаратном уровне, в компьютерах есть специальные процессоры для чисел float и NaN один из возможных его результатов.
Шикарное объяснение замыканий. Спасибо
Как раз готовлюсь к грядущим собеседованиям. Спасибо за видео!
Удачного прохождения интервью )
Спасибо, полезно повторить концептуальную информацию!!
Спасибо Владилен! Можно в следующих выпусках масштабировать экран покрупнее, пожалуйста!
огромное спасибо! Желаю успехов
Отличное видео часто пересматриваю перед собедованием
Спасибо автор! Держи подписку) Все в понятной и доступной форме
(27:55) ... неточность:
в переменной 'b' хранится ссылка на переменную 'a'.
Это не совсем верно, что легко проверить, если зададим:
'a = undefined'.
Тогда увидим, что:
'a -- undefined' ...... (переменная 'a' утратила ссылку на массив)
'b = [1, 2, 3, 4] ...... (переменная 'b' сохранила ссылку на массив)
То есть, обе переменные ссылались на один участок памяти:
'a' --> 'memory_area',
'b' --> 'memory_area'.
поэтому, когда переменная 'a' потеряла ссылку на участок памяти ('a = undefined'), переменная 'b' продолжила ссылаться на тот же самый участок памяти независимо от состояния ссылки от переменной 'a'.
отлично расписано, всё чётко, всё необходимое
Спасибо , как всегда Лучший
Спасибо огромное!!! Ты красаучег!!
Один из сильнейших веб-прогеров на ютубе на сегодняшний день. Спасибо за изобтлие годноты!
Спасибо, Владилен! Очень познавательно и не нужно тратить время на книгу.
Спасибо! Как раз понадобился список вопросов для собеседования )
Отличный урок, никакой воды! Спасибо!
Спасибо мужик, ты очень крутой! Лайки и вечная подписка тебе
Реально самый крутой гайдер по программированию, и слушать приятно
Владилен, спасибо за толковое видео.
Круто! Очень круто! Можно еще добавить про методы массивов, это частенько спрашивают на собесах
01:34:23 всё логично - здесь Вы меняете значение локальной ссылки на прототип, а не сам прототип.
Спасибо за видео ,ты крут)))
Сколько же раз нужно нажать 'run' из контекстного меню шторма, чтобы запомнить уже хоткей))
Очень круто! Спасибо!
Отличное пояснение материала!!! Спасибо!!!
Спасибо за видео🔥🔥🔥
видео просто супер! спасибо
Спасибо, отличная подача материала