Ловите таймкоды: 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, поэтому и не хватает именно в этом видео. То что отдельно есть - отлично
Ничего нового не узнал, но для повторения это идеально! Всё в одном месте собрано. Круто. А для тех кто только начинает изучать - это видео просто находка!
@@nickstojanovic9663 в нормальных конторах прежде идет собеседование, потом уже тестовое. В очень нормальных конторах идет сначала собеседование, потом тестовое, а потом второе собеседование.
@@austinpowers7030 в нормальные конторы должно висеть по 300 апликантов и с каждым из них никто проводить собеседование не будет, первым всегда должен идти тест если контора действительно нормальная
Есть некоторые неточности и замечания по курсу, а некоторые вещи можно ещё проще рассказать. `` - вот такие обратные кавычки это не просто "литерал", а это "литерал шаблонной строки" или просто "шаблонный литерал", так же как [] - литерал массива (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 - это тип, тут нет значени, Я не уверне в том насколько это близко к правде, но это помогает запомнить все эти задачи с сравнением
Владилен, считаю, что при объяснении setTimeout в цикле нужно было бы также упомянуть, что при использовании let на каждую итерацию создается абсолютно новая переменная, в то время как переменная, объявленная через var, -- одна на весь цикл, и при каждой итерации изменяется только ее значение, в чем, собственно, и кроется фишка этого примера. А так все очень круто и доступно, спасибо!
Спасибо огромное! Ваш труд очень помогает! Замечательная подача, нет "воды". Отличное пособие чтобы повторять язык JS в дороге или на выходных в свободные часы.
Спасибо большое, за доступное разъяснение JS!!! Только что UA-cam предложил ваши видео, теперь смогу точно разобраться в JS!!! Спасибо большое ещё раз, вы супер!
9:48 Добавлю от себя об одном очень важном аспекте разницы между null и undefined: в случае, если у функции есть параметр по умолчанию, и вызвать эту функцию, передав значение данного параметра undefined, то будет использован параметр по умолчанию, а если null - тогда null. Например: const fn = (value = 5) => value; console.log(fn(), fn(undefined), fn(null)); // 5 5 null
Владилен, если Вы читаете это - моя огромная благодарность! Я успешно прошёл своё первое техинтервью и получил свою первую работу, главным образом - благодаря урокам из Вашего плейлиста "Сложный JavaScript простым языком". Данное видео также очень помогло повторить изученное.
Для тех, кто хочет освоить профессию Frontend разработчика за 7 месяцев - bit.ly/3nnwTru Освоить основы веб-разработки бесплатно. Курс по HTML & CSS - bit.ly/3OutaUX
Не соглашусь. Короткие ролики очень удобно воспринимать как раз потому что есть быстрая завершённость. Далеко не всегда хочется иметь дело с длинным потоком новых данных.
@@mikeistp5736 это дело вкуса. Всегда будут те, кому нравится и те кому нет. Много людей записывают короткие ролики, а длинные - нет, поэтому автора видео хочется отдельно поблагодарить. Да и тема же - прохождение интервью, это не подразумевает изучить что-то с нуля, а скорее просто освежить память
Смотрел твой курс по Vue/Nuxt, где ты периодически тихонько матерился в микрофон, когда что-то не получалось. Было ощущение, что просто забыл вырезать)) Всё ждал, будет ли здесь такое)) А в целом - огромное спасибо, отличная подборка!
Как всегда ,Владилен лучший. Очень понятно объясняет, всё по полочкам. Единственное как мне кажется не хватает одной главы про промисы и может быть ещё одной главы про работу с сервером(GET,POST,PUT,DELETE), но это моё субъективное мнение. Спасибо ещё раз за твой контент!
Владилен, спасибо большое за видеоролик. Вчера был на собеседовании, и меня спрашивали буквально по каждой теме из этого ролика. Твой ролик очень мне помог. Очень хороший материал для подготовки к собесу. Обращаюсь к тем, кто будет проходить собесы, помимо этих тем повторите темы с промисами, а также подробнее рассмотрите концепт работы Event Loop
Спасибо за уроки. На русском ютубе можно сказать уникальный контент делаешь! Очень надеюсь что не забросишь канал и будет ещё больше роликов. В том числе очень буду ждать по vue 3. Скоро кстати релиз)
Хороший контент, по нему готовлюсь к собесу, в принципе многое знаешь, но иногда не всегда помнишь, что то забывается, что то на автомате делается - важно напомнить себе и проверить свои знания. Большое спасибо тебе
Супер, как раз смотрел твои уроки по Ангуляру, дай думаю на ютубе чет гляну, а тут вот на это видео наткнулся да еще и материал интересный и застрял))), спасибо)
Спасибо за полезный материал, как и во всех ваших видео - четкий, доступный материал, без воды в приятной манере изложения материала, которую легко воспринимать на слух.
У тебя супер полезный контент и просто талант объяснять всё доходчиво! Я про все концепции, о которых идёт речь в видео, знала, но с удовольствием посмотрела для закрепления и выяснения нюансов. Огромное спасибо за этот труд, ты -- алмаз :)
Контент ОГОНЬ!! Как раз для тех (как я ), кто думал, что изучил JS и пошел на собесы, и его там резко опускают на землю, а этот ролик проясняет очень многие из заданных там вопросов. Автору огромная благодарность!!!
NaN это действительно number, number не обязан представлять только цифры. NaN это представитель чисел с плавающей запятой, поддерживается на аппаратном уровне, в компьютерах есть специальные процессоры для чисел float и NaN один из возможных его результатов.
Какой же Вы крутой, Владилен! Спасибо огромное! После 4 месяцев первой работы как фулстак хочу перейти только на JS(React) и сейчас собираюсь готовиться к собеседованиям, поэтому Ваш урок оч оч оч полезен
'Однако, всё было бы хорошо, но это JavaScript...' (14:10) - это шедевр! Я как только не называл жабу, когда пытался изучить (понять!) как он работает. Эта фраза гениальна! Огромнейшая благодарность за видео и ваши труды. Очень много понял и заново переосмыслил.
к теме замыканий и использовании let в цикле for (тайминг - 54:30)- посмотрела, как бабель преобразует эту функцию, он вынес setTimeout в функцию loop и в цикле вызывает loop), так что можно и с использованием let починить
Отлично раскидал работу оператора new! Прям по пунктам. Только я бы дополнил, что по спецификации new возвращает инициализированный объект только в том случае, если функция вернёт что-то, отличное от объекта. Всё, что кроме - игнорится. Поэтому в этом полифиле лучше сохранить вызов конструктора и проверить его значение перед возвратом. const instance = constructor.apply(obj, args); return (instance && typeof instance === 'object') ? instance : obj;
Владилен спасибо большое! Просмотрев данное видео я ответил почти на все вопросы интервьювера. Но завалился на той части, которую не успел досмотреть. Собеседование было не на территории СНГ.
Эксклюзивный контент на моем Boosty: boosty.to/vladilen
Исходники тут: t.me/js_by_vladilen/131
Спустя уже почти 4 года видео все еще актуально и все еще проясняет очень многое. Спасибо огромное Владилен, за ваши старания в нашу пользу.
Но актуальность стоит проверять перед собесом, например типов уже 8, bigInt не хватает
Ловите таймкоды:
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, поэтому и не хватает именно в этом видео. То что отдельно есть - отлично
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 за час" здорового человека)
Этого не хватит
@@ЕвгенийПанкратов-г5ь Если ты сделал тестовое задание хорошо, то 70 процентов вопросов на собеседовании скорее всего отвалятся
@@nickstojanovic9663 в нормальных конторах прежде идет собеседование, потом уже тестовое. В очень нормальных конторах идет сначала собеседование, потом тестовое, а потом второе собеседование.
@@austinpowers7030 я говорил о собственном опыте, рассматривая исключительно удаленку. Но спасибо за дополнение.
@@austinpowers7030 в нормальные конторы должно висеть по 300 апликантов и с каждым из них никто проводить собеседование не будет, первым всегда должен идти тест если контора действительно нормальная
как же приятно слушать) Все ясно, просто, хорошие примеры, без воды, в комфортном темпе. Спасибо за уроки!
Вот только varyable произносится немного по другому
Ты в моём личном топе, напару с диманом из ИТ камасутры. Респект вам за годный контент.
@Metal Head Откуда такая агрессия? Тебя недолюбили?
@@MakcoH1998 скорее перелюбили, во все щели
Вот прям +
Сенсея называть бы с большой буквы)
+++
Есть некоторые неточности и замечания по курсу, а некоторые вещи можно ещё проще рассказать.
`` - вот такие обратные кавычки это не просто "литерал", а это "литерал шаблонной строки" или просто "шаблонный литерал", так же как [] - литерал массива (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 - это тип, тут нет значени,
Я не уверне в том насколько это близко к правде, но это помогает запомнить все эти задачи с сравнением
Автору видео желаю удачу и чтоб у него все исполнялось, ведь просто так выпускать видео и такие хорошие не все могут
Владилен, считаю, что при объяснении setTimeout в цикле нужно было бы также упомянуть, что при использовании let на каждую итерацию создается абсолютно новая переменная, в то время как переменная, объявленная через var, -- одна на весь цикл, и при каждой итерации изменяется только ее значение, в чем, собственно, и кроется фишка этого примера. А так все очень круто и доступно, спасибо!
Спасибо огромное! Ваш труд очень помогает! Замечательная подача, нет "воды". Отличное пособие чтобы повторять язык JS в дороге или на выходных в свободные часы.
Спасибо большое, за доступное разъяснение JS!!! Только что UA-cam предложил ваши видео, теперь смогу точно разобраться в JS!!! Спасибо большое ещё раз, вы супер!
Прошла уже собес?
Я очень сильно тебя благодарю за такую возможность подойти ближе к собеседованию!))
9:48 Добавлю от себя об одном очень важном аспекте разницы между null и undefined: в случае, если у функции есть параметр по умолчанию, и вызвать эту функцию, передав значение данного параметра undefined, то будет использован параметр по умолчанию, а если null - тогда null. Например:
const fn = (value = 5) => value;
console.log(fn(), fn(undefined), fn(null)); // 5 5 null
Спасибо большое! Один из лучших русскоязычных каналов по теме на ютубе
Владилен, если Вы читаете это - моя огромная благодарность! Я успешно прошёл своё первое техинтервью и получил свою первую работу, главным образом - благодаря урокам из Вашего плейлиста "Сложный JavaScript простым языком". Данное видео также очень помогло повторить изученное.
Привет) Поздарвяю тебя, так держать!) Если не секрет, сколько у тебя заняло обучение, и насколько трудные были вопросы на интервью?
С вами я сильно продвинул свой скилл по js . Большое вам спасибо за столь полезный контент.
очень познавательный канал и автор объясняет все очень простыми и понятными словами. Даже на 1.5х все очень понятно
Для тех, кто хочет освоить профессию Frontend разработчика за 7 месяцев -
bit.ly/3nnwTru
Освоить основы веб-разработки бесплатно. Курс по HTML & CSS - bit.ly/3OutaUX
Спасибо, что делаешь длинные ролики, а не огромное кол-во 5/10-минутных. Проще посмотреть 1 видео, чем 10 :) и тема очень актуальная
Не соглашусь. Короткие ролики очень удобно воспринимать как раз потому что есть быстрая завершённость. Далеко не всегда хочется иметь дело с длинным потоком новых данных.
@@mikeistp5736 это дело вкуса. Всегда будут те, кому нравится и те кому нет. Много людей записывают короткие ролики, а длинные - нет, поэтому автора видео хочется отдельно поблагодарить. Да и тема же - прохождение интервью, это не подразумевает изучить что-то с нуля, а скорее просто освежить память
@@mikeistp5736 Я пояснял в телеграм почему буду стараться делать ролики длинными на ютубе. Все из-за его алгоритмов
Привет, сделай список топовых вопросов на собеседовании, а также ответов на них. Это будет очень круто.
Смотрел твой курс по Vue/Nuxt, где ты периодически тихонько матерился в микрофон, когда что-то не получалось. Было ощущение, что просто забыл вырезать)) Всё ждал, будет ли здесь такое)) А в целом - огромное спасибо, отличная подборка!
Прекрасная подача материала! Получил большое удовольствие от просмотра. Благодарю. :)
Как всегда ,Владилен лучший. Очень понятно объясняет, всё по полочкам. Единственное как мне кажется не хватает одной главы про промисы и может быть ещё одной главы про работу с сервером(GET,POST,PUT,DELETE), но это моё субъективное мнение. Спасибо ещё раз за твой контент!
Супер подача. Без воды, кратко, хорошие примеры. Спасибо за ваши уроки и курсы!
Владилен, всё с толком объясняет. Понятно и доходчего. Спасибо за нелёгкий труд. 💪
Владлен! Спасибо за твой труд! То, что ты делаешь мне очень нравится и помогает!
Спасибо! Как всегда кратко и по сути. Ждем еще
Очередное собеседование и я здесь) Спасибо, Владилен!
Большое спасибо за краткий и практически полезный разбор JS на примерах. Случайно к Вам попал, но это именно то, что надо :)
Спасибо большое за крутую собранную информацию, дай бог пройду успешно свое собеседование после данного ролика
Владилен, спасибо большое за видеоролик. Вчера был на собеседовании, и меня спрашивали буквально по каждой теме из этого ролика. Твой ролик очень мне помог. Очень хороший материал для подготовки к собесу. Обращаюсь к тем, кто будет проходить собесы, помимо этих тем повторите темы с промисами, а также подробнее рассмотрите концепт работы Event Loop
Про ивентлуп на канале отдельный ролик
Отличное объяснение тем. Особенно понравилось объяснение замыкания, c этим всегда были проблемы. Большое спасибо за труд.
Спасибо за уроки. На русском ютубе можно сказать уникальный контент делаешь! Очень надеюсь что не забросишь канал и будет ещё больше роликов. В том числе очень буду ждать по vue 3. Скоро кстати релиз)
Не забросил)
Очень полезно,чтобы освежить знания и что-то вспомнить.Спасибо,Владилен!
Хороший контент, по нему готовлюсь к собесу, в принципе многое знаешь, но иногда не всегда помнишь, что то забывается, что то на автомате делается - важно напомнить себе и проверить свои знания. Большое спасибо тебе
Спасибо, Владилен! Очень много классного контента на твоем канале. Простыми словами о сложном!!!
Супер, как раз смотрел твои уроки по Ангуляру, дай думаю на ютубе чет гляну, а тут вот на это видео наткнулся да еще и материал интересный и застрял))), спасибо)
Большое спасибо за такие уроки, все понятно и становится по своим полочкам в голове.
Спасибо за полезный материал, как и во всех ваших видео - четкий, доступный материал, без воды в приятной манере изложения материала, которую легко воспринимать на слух.
Я нубас полнейший!) Как же черт возьми круто! Владилен, огромное человеческое спасибо! Топ контент!
sposibo ogromnoe ! kupil vash kurs po Excel ochen nravitsya no i slojno esli chestno !!
Да прибудет с тобой сила Владилен)Спасибо)
Супер видео! Низкий поклон и поддержка!
Вселенское Вам спасибо! Очень все чётко изложено )
Спасибо, все это очень полезно, освежил знания по Js за полтора часа!
Владилен, очень помогло твое видео при подготовке к собеседованию. Спасибо :)
Все четко, по факту, проффесионально, без воды, смотрел не отрываясь!
У тебя супер полезный контент и просто талант объяснять всё доходчиво!
Я про все концепции, о которых идёт речь в видео, знала, но с удовольствием посмотрела для закрепления и выяснения нюансов.
Огромное спасибо за этот труд, ты -- алмаз :)
А ты изумруд))!!
Контент ОГОНЬ!! Как раз для тех (как я ), кто думал, что изучил JS и пошел на собесы, и его там резко опускают на землю, а этот ролик проясняет очень многие из заданных там вопросов. Автору огромная благодарность!!!
Блен, какой же офигенно качественный материал на твоем канале :)
Благодарю, стараюсь)
Спасибо большое за полезную видео, ждем новых!
Спасибо за видос, что-то освежил в памяти, что-то узнал новое.
В JavaScript есть 8 основных типов данных.
null,
undifined,
boolean,
number,
string,
symbol
object
bigint. ( для целых чисел произвольной длины. )
На вопрос:
Какие типы данных существуют в js (Стандарт языка ES6)
Мне чатгпт ответил:
boolean, string, number, undefined, null, symbol😅
1:04:04 Что такое контекст? "Я в уме - ну это тоже самое что и scope".
Владилен: Зачастую контекст часто путают с таким понятием как scope..
лол))
аналогично
четкое видео ! я пришел с java/c# в js и как раз данное видео именно то, что нужно чтобы войти в курс дела
Мужик, добра тебе, очень информативно и понятно)
Круто! Очень круто! Можно еще добавить про методы массивов, это частенько спрашивают на собесах
Спасибо Владилен! Можно в следующих выпусках масштабировать экран покрупнее, пожалуйста!
NaN это действительно number, number не обязан представлять только цифры. NaN это представитель чисел с плавающей запятой, поддерживается на аппаратном уровне, в компьютерах есть специальные процессоры для чисел float и NaN один из возможных его результатов.
Спасибо, все очень понятно. Хорошо посмотреть, что бы все вспомнить
Спасибо огромное! Очень, очень вовремя:)
Один из сильнейших веб-прогеров на ютубе на сегодняшний день. Спасибо за изобтлие годноты!
Спасибо большое, Каждое видео в котором есть польза я награждаю лайком, Твои видео все полезные)
Стал уже разработчиком?
Какой же Вы крутой, Владилен! Спасибо огромное! После 4 месяцев первой работы как фулстак хочу перейти только на JS(React) и сейчас собираюсь готовиться к собеседованиям, поэтому Ваш урок оч оч оч полезен
А на бэке какой язык был?
Крут! Учусь сейчас на курсах и нам дали тестовые вопросы для тестового собеса - ты осветил процентов 80!
Спасибо большое за столь полезный контент!
Спасибо, Владилен! Очень познавательно и не нужно тратить время на книгу.
Очень много полезного материала, спасибо!
Владилен ты красавчик, такой крутой и длинный ролик снял. :)
Сколько же раз нужно нажать 'run' из контекстного меню шторма, чтобы запомнить уже хоткей))
лучший видос для подготовки к собесу! спасибо!
величезна подяка за інформативність! 🐱👤🙌
Шикарное объяснение замыканий. Спасибо
Спасибо то что делитесь знаниями.
Отличный урок, никакой воды! Спасибо!
Спасибо автор! Держи подписку) Все в понятной и доступной форме
Спасибо, полезно повторить концептуальную информацию!!
ЛАЙК ОТ СЕООНЛИ - кодера-легенды
Чувак, ты находка в русском ютубе
Как раз готовлюсь к грядущим собеседованиям. Спасибо за видео!
Удачного прохождения интервью )
отлично расписано, всё чётко, всё необходимое
Спасибо! Как раз понадобился список вопросов для собеседования )
Владилен, ты - боженька!:)
Отличное видео часто пересматриваю перед собедованием
Реально самый крутой гайдер по программированию, и слушать приятно
Блин каждой раз новий узнаю смотрит один видео тоже видео супер спасибо в это раз я усвоил точно )))
'Однако, всё было бы хорошо, но это JavaScript...' (14:10) - это шедевр! Я как только не называл жабу, когда пытался изучить (понять!) как он работает. Эта фраза гениальна! Огромнейшая благодарность за видео и ваши труды. Очень много понял и заново переосмыслил.
огромное спасибо! Желаю успехов
Спасибо мужик, ты очень крутой! Лайки и вечная подписка тебе
к теме замыканий и использовании let в цикле for (тайминг - 54:30)- посмотрела, как бабель преобразует эту функцию, он вынес setTimeout в функцию loop и в цикле вызывает loop), так что можно и с использованием let починить
Спасибо огромное!!! Ты красаучег!!
Владилен, спасибо за толковое видео.
Спасибо , как всегда Лучший
Отлично раскидал работу оператора new! Прям по пунктам. Только я бы дополнил, что по спецификации new возвращает инициализированный объект только в том случае, если функция вернёт что-то, отличное от объекта. Всё, что кроме - игнорится. Поэтому в этом полифиле лучше сохранить вызов конструктора и проверить его значение перед возвратом.
const instance = constructor.apply(obj, args);
return (instance && typeof instance === 'object') ? instance : obj;
Спасибо за видео🔥🔥🔥
Владилен спасибо большое! Просмотрев данное видео я ответил почти на все вопросы интервьювера. Но завалился на той части, которую не успел досмотреть. Собеседование было не на территории СНГ.
Спасибо за видео ,ты крут)))