javaScript требует каждодневных тренировок, на канале @JavaScript_Quiz (телеграм) каждый день публикуются по 3 задачи в виде опроса с ссылкой на учебный материал, просто подпишись и прокачивайся.
Контекст в JavaScript похож на контекст в предложении: «Петя бежит быстро, потому что Петя пытается поймать поезд.» «Петя бежит быстро, потому что он пытается поймать поезд. Второе предложение звучит лаконичнее. Предметом предложения является Петя, и мы можем сказать, что контекст предложения - это Петя, потому что он в центре внимания в это конкретное время в предложении. Даже местоимение «кто» относится к Пете. this нам нужен для доступа к методам и свойствам объекта, который вызывает функцию, тем более, что мы не всегда знаем, имя вызывающего объекта. Необходимо усвоить всего одно правило для определения this: значение this, внутри функции, определятся не в момент создания функции, а в момент ее вызова. Значение this определяет то, как вызывается функция. Несмотря на то, что кажется как будто this ссылается на объект внутри которого был определен метод объекта. В глобальной области видимости, контекст ссылается на объект window, если скрипт не находится в строгом режиме "use strict". Когда мы используем строгий режим, значение this, в глобальной области видимости (в глобальных функциях и анонимных функциях), будет undefined.
Ну вот 58 минута у нас setInterval(timer.tick, 1000); у нас єсть обєкт timer ми у окна window визиваєм метод window.setInterval(tick, 1000); у нас вилетаєт ошибка у window нет time , elem. Ет понятно, но куда делся наш обєкт timer????
Очень крутой урок.Раньше долго не мог понять эти темы. Рассказано "просто о сложно". Подобраны такие примеры из реальной жизни, для понимания на уровне повседневной жизни. Специалист своего дела.
вебинар супер, после других языков никак не мог привыкнуть к колбэкам, и временами не до конца с this было понятно, давно слышал и про call( ), но не вникал, а сейчас благодаря просто шикарному объяснению Дмитрия в этом вебинаре, наконец, кажется все это стало точно понятным. Отдельное спасибо Дмитрий за постоянные акценты, что то-то наверняка должно быть непонятно, лично мне, именно это очень помогает.
Интересно вас смотреть. На любой вопрос найдете объяснение! Ваши вебинары- это лучшее, что есть на ютубе о веб-программировании. Всем друзьям уже о вас рассказал и они довольны вашими вебинарами) Продолжайте в том же духе)
Дмитрий просто Бог преподавания. Очень хорошо объясняет. Я прохожу эти темы почти впервые, так вроде понятно, но надо ещё почитать, порешать задачки, чтобы осознать полностью. Но объяснения очень наглядные, спасибо!!! Буду вас смотреть!!!
чувак ты просто король обучающих видосов)) хоть я что то из материала и знаю, но все равно выучил совсем недавно, поэтому полезно повторить, попрактиковаться, и закрепить знания, поэтому большое спасибо!
Дмитрий спасибо вам, 2 года назад я посмотрел ваш видосик по основам программирования, вы рекомендовали начинать с js, возможно, благодаря вам, работаю в it, в достаточно крупной компании. Продолжайте в том же духе! :)
Коля Правда а расскажите поэтапно как вы изучили и на каком этапе изучения нашли работу?! И в какую сторону после js пошли изучать дальше?! Спасибо заранее большое. Если можно сюда написать lubimovanity@gmail.com. подскажите ,так сказать,младшему "брату" план действий по изучению?!
Спасибо, Дмитрий, вы очень круто объясняете - сразу открылись глаза на JS :) и пришло глубинное понимание. Даже пришли мысли, что и где в проектах было сделано неправильно, и как поправить :)
Отличный контент наряду с книгой Симдянова по PHP где собственно тоже берется сразу с основ у вас наиболее адекватная структура и подача материала, спасибо огромное за ваши труды.
Я изучаю JavaScript после Python. Действительно, для понимания единственная сложность - это асинхронность. Видео помогло прояснить некоторые моменты.))
Посмотрел первый раз, поплакал, пошел подучил основы) Вернулся через неделю, пересмотрел , уже понятно более менее) Через недельку напишу че за КАЛЛбэки такие и как их простым людям понять)
Спасибо! Некоторые знания по JS были. Хотел узнать немного о замыкании. Так получилось, что узнал что за кулбэки, и как используються - кажется с этим я хорошо разобрался. А вот с замыканиями - я только понял что они используются для получения каких то переменных (обьектов или значиния) из функции которую интерпретатор в начале запуска проинициализировал, но мы еще не использовали, или уже вышли за границы её видимости. Как то так я понял. Вообщем мутно еще понимаю замыкание. И контекст связаный с замыканием так же плохо зашел. Буду разбираться с этим!) Можете книжку посоветовать хорошую по JS?
Добрый день. Спасибо за видео. Дмитрий, подскажите, 40:50 мы же здесь можем использовать делегирование событий, верно? Повесить на родительский div событие, и через event.target.closest('div) при клике на конкретный див - будет происходить событие. Эти два способа по своей сути равнозначны? Если есть какие-то нюансовые различия ? Спасибо
Смотрю уже не 1 видео от этого автора, Потрясающие вебинары! где ссылка на покупку? Готов купить за миллион. Только слушателей обычно много, отвлекают своими глупыми шутками автора в комментариях.
Если я правильно понял, то в примере с таймером в первом случае передается ссылка на функцию ( timer.tick ) и ее уже setInterval вызывает в window. => ошибка. Во втором случае анонимная функция вызывает метод timer`a, который она видит по замыканию.
Единственное что скажу, если не понятно , практиуйтесь и пересматривайте уроки!! И все будет рано или поздно понятно) Я не мог понять до конца что такое контекст , call, apply .. Сейчас смотрю и для меня ето все просто елементарно выглядит) Терепение, все будет)
Дмитрий Лаврик, я нашел ошибку в вашем коде. Не return Math.floor(Math.random()*(max-min+1)); а return min + Math.floor(Math.random()*(max-min+1)); Ваш код работает нормально поскольку min = 0, возьмите другой min и работать не будет.
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-LM0tW2MZJZ4.html А как же event.target ? До изучения контекста всегда решал подобную задачу event.target или event.currentTarget по ситуации.
Дмитрий, а почему вы говорите на 43:00, что только this можно применять и замыкание тут применить невозможно? Это же не так. Через замыкание можно решить данную задачу.
Все подробно объяснил, про контекст стало понятно. Но с замыканиями я не понял, Дмитрий объяснил что это просто адресация к переменной к родительском пространстве имен. Но во всех примерах в интернете и книгах по замыканиям была какая-то жесть с возвратом функций и т.д. а тут о ней ни слова
если функция находится в функции, то она видит все переменные родительской функции по правилу замыкания... А Дмитрий - он просто напросто избегает тавтологии и реально крутой преподаватель, потому и все так просто и понятно.. Если бы не его уроки- я бы никогда не понял ничего по програмированию... В который раз- благодарю за уроки и продолжаю учиться)
Да это один из лучших преподавателей в инете, я даже могу сказать, что не знаю лучше чем он. На этапе верстки еще был вейап что-то наподобие, но там совсем детский сад, а тут уже программирование. Надеюсь этот человек получает достойную оплату своего труда.
Здравствуйте. Спасет оборачивание в анонимную немедленно вызываемую функцию (IIFE): items[i].onclick = function (x){ return activeItem}(i); Function activeItem(x){ Items[x].classList.toggle(‘item-active’) }
Хорошо знаю JS, просто было интересно, чему там учат на ютубах) Неплохие объяснения + человек хотя бы умеет нормально разговаривать, а не как какие-нибудь хаудихо) Занудные замечания: За использование window.onload без веских причин - надо бить по рукам, а не поощрять!) 37:53 - querySelectorAll возвращает не массив, а список элементов NodeList. console.log( document.querySelectorAll("body") instanceof Array ); // false console.log( document.querySelectorAll("body") instanceof NodeList ); // true 55:57 - вместо innerHTML хорошо бы писать textContent, если туда передается именно текст, а не HTML. 1:05:40 - Функция срабатывает только потому что конкретно тут min равен нулю. Она должна выглядеть так: return Math.floor( Math.random() * (max - min + 1) + min ); 1:27:12 - if (steps === 0) ошибка. Функция срабатывает просто потому что 1000 / 50 получается целым числом. Было бы дробным, оно бы прошло мимо нуля в минус и никогда бы не останавливалось. Нужна проверка if (steps
Учитель! Подскажите пожалуйста, на 1:30:19 вы создаёте функцию callback, которая выполниться после того как элемент исчезнет, так зачем же создавать эту функцию, если можно в if statement после clearInterval, прописать исчезновение?
Aleksejs Aleksejevs насколько я понял тут фишка в том что можно любое действие прописать , а не определенное - то есть функция становится универсальной и её можно применять к разным объектам с разным колбэком . Просто в параметр функции где привязан колбэк можно записать любую функцию
Про This если мы вызываем без скобок и присваиваем переменной то это отложенный вызов, а если у функции есть параметры как ее без скобок присвоить переменной?
рекомендовали это видео, чтобы разобраться в данной теме... Все хорошо, все понятно... Но без анонимной функции теряется контекст Дмитрий даже не пытался объяснить.. И так же происходит в куче других видео, книг и статей...А именно это я хотел выкурить.. Это какая загадочная вещь :)