Понимание javascript - замыкания, контекст, callback.

Поделиться
HTML-код
  • Опубликовано: 10 мар 2017
  • Волшебное слово this. Понятие контекста.
    Способы вызова функций. Замыкания.
    Коллбеки. Коллбеки и контекст.
    js.dmitrylavrik.ru/

Комментарии • 194

  • @xanxan3256
    @xanxan3256 7 лет назад +166

    Самый лучший преподаватель, из тех кого я видел на ютубе. Умеет разжевать даже самые сложные вещи

    • @talas12341
      @talas12341 6 лет назад +2

      ты просто мало

    • @SakurUKR
      @SakurUKR 6 лет назад

      Парень действительно хорошо молвит, но есть ребята, которые как минимум не хуже. Подписка +

    • @dasshrs
      @dasshrs 5 лет назад

      @@SakurUKR например? Очень интересно ещё посмотреть.

    • @maksym7094
      @maksym7094 4 года назад

      Да еще с отличным чувством юмора - 1:35:16

    • @user-oj2xh6tx5n
      @user-oj2xh6tx5n 3 года назад

      javaScript требует каждодневных тренировок, на канале @JavaScript_Quiz (телеграм) каждый день публикуются по 3 задачи в виде опроса с ссылкой на учебный материал, просто подпишись и прокачивайся.

  • @factotum5987
    @factotum5987 7 лет назад +60

    так, пересмотрим еще разок!

  • @valerylutsevich8948
    @valerylutsevich8948 7 лет назад +26

    вебинар супер, после других языков никак не мог привыкнуть к колбэкам, и временами не до конца с this было понятно, давно слышал и про call( ), но не вникал, а сейчас благодаря просто шикарному объяснению Дмитрия в этом вебинаре, наконец, кажется все это стало точно понятным. Отдельное спасибо Дмитрий за постоянные акценты, что то-то наверняка должно быть непонятно, лично мне, именно это очень помогает.

  • @artyomsultanov5204
    @artyomsultanov5204 6 лет назад +1

    Интересно вас смотреть. На любой вопрос найдете объяснение! Ваши вебинары- это лучшее, что есть на ютубе о веб-программировании. Всем друзьям уже о вас рассказал и они довольны вашими вебинарами) Продолжайте в том же духе)

  • @gusmanpoliceman
    @gusmanpoliceman 7 лет назад +1

    Очень крутой урок.Раньше долго не мог понять эти темы. Рассказано "просто о сложно". Подобраны такие примеры из реальной жизни, для понимания на уровне повседневной жизни. Специалист своего дела.

  • @PacoOfficial
    @PacoOfficial 7 лет назад

    чувак ты просто король обучающих видосов)) хоть я что то из материала и знаю, но все равно выучил совсем недавно, поэтому полезно повторить, попрактиковаться, и закрепить знания, поэтому большое спасибо!

  • @user-up1bf7ri7j
    @user-up1bf7ri7j 5 лет назад

    Какой молодец! Многие свои знания демонстрируют без внимания на то, чтобы научить, а здесь все очень хорошо. Спасибо!

  • @IRONteam.
    @IRONteam. 6 лет назад +41

    Контекст в JavaScript похож на контекст в предложении:
    «Петя бежит быстро, потому что Петя пытается поймать поезд.»
    «Петя бежит быстро, потому что он пытается поймать поезд.
    Второе предложение звучит лаконичнее. Предметом предложения является Петя, и мы можем сказать, что контекст предложения - это Петя, потому что он в центре внимания в это конкретное время в предложении. Даже местоимение «кто» относится к Пете.
    this нам нужен для доступа к методам и свойствам объекта, который вызывает функцию, тем более, что мы не всегда знаем, имя вызывающего объекта.
    Необходимо усвоить всего одно правило для определения this: значение this, внутри функции, определятся не в момент создания функции, а в момент ее вызова.
    Значение this определяет то, как вызывается функция. Несмотря на то, что кажется как будто this ссылается на объект внутри которого был определен метод объекта.
    В глобальной области видимости, контекст ссылается на объект window, если скрипт не находится в строгом режиме "use strict".
    Когда мы используем строгий режим, значение this, в глобальной области видимости (в глобальных функциях и анонимных функциях), будет undefined.

    • @talas12341
      @talas12341 5 лет назад

      +

    • @user-uq4ix5ie3q
      @user-uq4ix5ie3q 4 года назад

      Превосходно объяснил 👍

    • @user-vf1iq7hf3j
      @user-vf1iq7hf3j 4 года назад +1

      Ну вот 58 минута у нас setInterval(timer.tick, 1000); у нас єсть обєкт timer
      ми у окна window визиваєм метод window.setInterval(tick, 1000);
      у нас вилетаєт ошибка у window нет time , elem. Ет понятно, но куда делся наш обєкт timer????

    • @MrPong-kb5kt
      @MrPong-kb5kt 3 года назад

      Низкий вам поклон, мистер

  • @slaincore
    @slaincore 5 лет назад

    Про замыкания и колбэки очень круто и просто объяснил! Лучше всех кого я смотрел на ютубе.

  • @yurabeliaev8695
    @yurabeliaev8695 7 лет назад +11

    Вижу Лаврика - ставлю лайк!

  • @castiliOR
    @castiliOR Год назад

    качество изображения не очень чёткое, но качество материала оооочень чёткое. Пересматриваю на одном дыхании

  • @user-vb1oy9ir1c
    @user-vb1oy9ir1c 7 лет назад +3

    Спасибо вам за вебинары

  • @uaplatformacomua
    @uaplatformacomua 5 лет назад

    Дмитрий просто Бог преподавания. Очень хорошо объясняет. Я прохожу эти темы почти впервые, так вроде понятно, но надо ещё почитать, порешать задачки, чтобы осознать полностью. Но объяснения очень наглядные, спасибо!!! Буду вас смотреть!!!

  • @omusatov
    @omusatov 7 лет назад

    Последний раз я с таким удовольствием смотрел уроки Игоря Борисова из Специалиста по php... Талантливо подаете, Дмитрий.

  • @2positive1
    @2positive1 4 года назад +1

    Как же доступно ты объясняешь. Благодарю!

    • @xenm85
      @xenm85 3 года назад

      и ты понял в чем суть замыканий и как надо с ними работать?

  • @nickpravda3249
    @nickpravda3249 7 лет назад +20

    Дмитрий спасибо вам, 2 года назад я посмотрел ваш видосик по основам программирования, вы рекомендовали начинать с js, возможно, благодаря вам, работаю в it, в достаточно крупной компании. Продолжайте в том же духе! :)

    • @olegmaz3969
      @olegmaz3969 7 лет назад

      Николай, а сколько времени вы учились чтоб попасть на роботу?

    • @nickpravda3249
      @nickpravda3249 7 лет назад +2

      Верстку давно знал, но на любительском уровне, на работу пошел можно сказать сразу

    • @user-ir5xs8ne6l
      @user-ir5xs8ne6l 6 лет назад +2

      Коля Правда а расскажите поэтапно как вы изучили и на каком этапе изучения нашли работу?! И в какую сторону после js пошли изучать дальше?! Спасибо заранее большое. Если можно сюда написать lubimovanity@gmail.com. подскажите ,так сказать,младшему "брату" план действий по изучению?!

    • @mgersoukiasyan3626
      @mgersoukiasyan3626 5 лет назад

      @@user-ir5xs8ne6l Верстка - канал Web Design Master, Потом js чистый, потом vue.js

    • @xenm85
      @xenm85 3 года назад

      неужели купленный отзыв?

  • @VVhatsoever
    @VVhatsoever 7 лет назад

    Чудесно) спасибо!)
    Жизненные примеры очень радуют и способствуют пониманию!

  • @bitrixsovet448
    @bitrixsovet448 7 лет назад

    Спасибо, Дмитрий, вы очень круто объясняете - сразу открылись глаза на JS :) и пришло глубинное понимание. Даже пришли мысли, что и где в проектах было сделано неправильно, и как поправить :)

  • @user-yk3if2ku4e
    @user-yk3if2ku4e 7 лет назад

    Супер, мне понравился вебинар. Многое для себя уяснил и многое прояснилось.

  • @1988proxy
    @1988proxy 4 года назад +1

    Спасибо Огромное за Урок!!!!!!!

  • @unistar42
    @unistar42 6 лет назад

    Потрясно! Я наконец познала коллбэки).
    И про замыкания я уже поняла, но повторить было оч.полезно.

  • @seanlangley7467
    @seanlangley7467 6 лет назад

    Спасибо за вебинар мучачо, снимаю перед вами свое сомбреро

  • @rinatvaliullov3247
    @rinatvaliullov3247 7 лет назад

    Хороший вебинар, не знаю почему, но только после него начало приходить понимание про this и области видимости

  • @SergiyAntonyuk_PhD
    @SergiyAntonyuk_PhD 7 лет назад

    Полезный вебинар. Спасибо!

  • @user-gv1cq4jn1g
    @user-gv1cq4jn1g 3 года назад

    тупо лучший! смотришь один его ролик и потом начинаешь сам пробовать, уже с пониманием.

  • @kimTier
    @kimTier 6 лет назад

    Спасибо большое! Просто реанимировал. Препод от бога.

  • @leader7700
    @leader7700 7 лет назад

    интересная подача инфы)) было интересно) спасибо)

  • @WashYourBack
    @WashYourBack 7 лет назад

    Хороший вебинар, время было "потрачено" с пользой.

  • @andreyandreich4858
    @andreyandreich4858 6 лет назад

    Дмитрий кросавчег, всё объясняет четко

  • @ScaleChannel
    @ScaleChannel 7 лет назад +1

    Все доступно объяснил, молодец ;)

  • @muhtarkunakov452
    @muhtarkunakov452 4 года назад

    Отличный контент наряду с книгой Симдянова по PHP где собственно тоже берется сразу с основ у вас наиболее адекватная структура и подача материала, спасибо огромное за ваши труды.

  • @serhiichernyshov7172
    @serhiichernyshov7172 6 лет назад

    один из лучших преподавателей js

  • @lapetitemort1666
    @lapetitemort1666 7 лет назад

    ООООООООО да наконец-то КТО-то это сделал доходчиво и внятно БЛАГОДАРЮ.....

  • @elenadanchenko276
    @elenadanchenko276 Год назад

    Спасибо вам большое!все очень понятно!

  • @vladimirkuzmin1953
    @vladimirkuzmin1953 5 лет назад

    Посмотрел первый раз, поплакал, пошел подучил основы)
    Вернулся через неделю, пересмотрел , уже понятно более менее)
    Через недельку напишу че за КАЛЛбэки такие и как их простым людям понять)

  • @andreymanaenko1638
    @andreymanaenko1638 7 лет назад

    Хорошо описал сложные вопросы. Очень часто задают такие вопросы на собеседованиях.

  • @user-mk2rm7uc7s
    @user-mk2rm7uc7s 5 лет назад

    супер, спасибо! долго билась с этой темой до этого видео

  • @jsb7239
    @jsb7239 3 года назад

    Стоит пересмотреть! 👍🏻

  • @vovergg
    @vovergg 4 года назад

    Я изучаю JavaScript после Python. Действительно, для понимания единственная сложность - это асинхронность. Видео помогло прояснить некоторые моменты.))

  • @scripterdds8001
    @scripterdds8001 7 лет назад

    Димон, этот видос крутой, го еще жести и посложнее, чтобы у меня мозг совсем взорвался.Это испытание было пройдено и я всё понял.

  • @dmytrodemydenko3534
    @dmytrodemydenko3534 6 лет назад

    Идеально все обьяснил, спасибо!

  • @dezo103
    @dezo103 3 года назад

    Классно объясняешь, спасибо

  • @DHor9
    @DHor9 Год назад

    за этот урок - однозначно подписка

  • @PacoOfficial
    @PacoOfficial 7 лет назад

    чисто под меня урок, правда я уже знаю что такое замыкания))
    так что буду смотреть ехуууу ты топ

  • @sdsaasdasd4683
    @sdsaasdasd4683 5 лет назад

    Дмитрий красава!

  • @RinatYouldashbaev
    @RinatYouldashbaev 6 лет назад +33

    Про коллбэки с 1:16:00

  • @alexandervasilenko1481
    @alexandervasilenko1481 6 лет назад

    Спасибо, очень полезно!

  • @vazgenaleksanyan2929
    @vazgenaleksanyan2929 5 лет назад

    Все что надо смотреть, ищу с начало у Лаврика.

  • @user-wd8hm2ro8e
    @user-wd8hm2ro8e 7 лет назад

    Господи, только благодаря вам я смог понять что делает this и перестал бояться ООП в языках в целом!

    • @xenm85
      @xenm85 3 года назад

      и ты понял в чем суть замыканий и как надо с ними работать? И чем ООП js отличается от классики?

  • @dmitriytyurnin4605
    @dmitriytyurnin4605 7 лет назад

    Браво! Супер!

  • @wepko
    @wepko 6 лет назад

    Спасибо ! за урок

  • @romangorbenya
    @romangorbenya 4 года назад +1

    Очень хорошо!

  • @rv6819
    @rv6819 7 лет назад

    Вебинар класс. Ссылочку для отзывов в вк тоже добавляй в описание!

  • @ninzzo9867
    @ninzzo9867 5 лет назад +1

    это лучший урок по js ! чувак талант

    • @xenm85
      @xenm85 3 года назад

      мб. Так в чем суть замыканий в js?

    • @nazargavrilov873
      @nazargavrilov873 11 месяцев назад

      @@xenm85 замыкания - способность языка создавать приватный контекст. В функционале - где используется работа с валидацией полей это используется

  • @user-ss4ee3nc8r
    @user-ss4ee3nc8r 6 лет назад

    интересно рассказывает я даже не понял как час прошел и самые нужные темы

  • @enoon_23984
    @enoon_23984 7 лет назад +1

    Ну что тут можно сказать, вижу новые вебинары от Дмитрия, сразу ставлю лике.

  • @fenix_63
    @fenix_63 6 лет назад

    Урок супер

  • @videoreactions979
    @videoreactions979 6 лет назад

    хорошо заходит, спасибо

  • @e_zelenkov
    @e_zelenkov 6 лет назад

    супер. очень доступно! было бы не плохо про promise такое же выложить!

  • @sergeyemelyanov8100
    @sergeyemelyanov8100 5 лет назад

    Спасибо!

  • @SNSDfOu
    @SNSDfOu Год назад

    17 год, я был так молод и горяч

  • @batlang96
    @batlang96 5 лет назад

    Спасибо! Некоторые знания по JS были. Хотел узнать немного о замыкании. Так получилось, что узнал что за кулбэки, и как используються - кажется с этим я хорошо разобрался. А вот с замыканиями - я только понял что они используются для получения каких то переменных (обьектов или значиния) из функции которую интерпретатор в начале запуска проинициализировал, но мы еще не использовали, или уже вышли за границы её видимости. Как то так я понял. Вообщем мутно еще понимаю замыкание. И контекст связаный с замыканием так же плохо зашел. Буду разбираться с этим!)
    Можете книжку посоветовать хорошую по JS?

  • @Ihor.Kuptsiv
    @Ihor.Kuptsiv 4 года назад

    смотрю на х1.25, годно:)

  • @romandavydov3738
    @romandavydov3738 6 лет назад

    Cool! All understandble

  • @xenonist4502
    @xenonist4502 7 лет назад +1

    Спасибо огромное за урок, я всё понял) Материал отличный, покупать курс я, конечно же, не буду) (ибо школьник)

  • @kani-akun
    @kani-akun 2 года назад

    Как к вам попасть на курс js, ? К сожалению курс начался , когда будет новый поток ?) недавно начала смотреть ваши уроки очень доходчиво объясняете.

  • @volydymyr9897
    @volydymyr9897 4 года назад

    Единственное что скажу, если не понятно , практиуйтесь и пересматривайте уроки!! И все будет рано или поздно понятно) Я не мог понять до конца что такое контекст , call, apply .. Сейчас смотрю и для меня ето все просто елементарно выглядит)
    Терепение, все будет)

  • @user-er5ux4xv7e
    @user-er5ux4xv7e 6 лет назад

    спасибо за видос конечно. но то, что этот видос создан в качестве приманки на твои курсы, бесит нереально) и заканчиваешь всегда на самом интересном

  • @freezinful
    @freezinful 6 лет назад +4

    звонок спине)

  • @Sergey-vh3vj
    @Sergey-vh3vj 6 лет назад

    Не хватает навигации по стой длинному ролику, пол часа чтобы услышал про замыкание.. а так спасибо большое, весьма информативно.

  • @david_shiko
    @david_shiko 6 лет назад

    Смотрю уже не 1 видео от этого автора, Потрясающие вебинары! где ссылка на покупку? Готов купить за миллион. Только слушателей обычно много, отвлекают своими глупыми шутками автора в комментариях.

  • @mw2start729
    @mw2start729 7 лет назад

    Спасибо

  • @Farmatique
    @Farmatique 6 лет назад

    лайк не глядя

  • @user-mb8fr3ci6e
    @user-mb8fr3ci6e 5 лет назад

    Если я правильно понял, то в примере с таймером в первом случае передается ссылка на функцию ( timer.tick ) и ее уже setInterval вызывает в window. => ошибка.
    Во втором случае анонимная функция вызывает метод timer`a, который она видит по замыканию.

  • @andykud63
    @andykud63 6 лет назад

    Про колбеки бы добавил что их можно вызывать не только в конце, а везде где надо ответвиться от основного кода функции

  • @vladk3111
    @vladk3111 3 года назад

    Добрый день. Спасибо за видео.
    Дмитрий, подскажите, 40:50 мы же здесь можем использовать делегирование событий, верно?
    Повесить на родительский div событие, и через event.target.closest('div) при клике на конкретный див - будет происходить событие.
    Эти два способа по своей сути равнозначны?
    Если есть какие-то нюансовые различия ?
    Спасибо

  • @valeriavaleria9507
    @valeriavaleria9507 5 лет назад

    кот на 17-й минуте шикарный)

    • @espocada_official
      @espocada_official 4 года назад

      я подумал это человек с длинной рукой

  • @roman--s
    @roman--s 5 лет назад +2

    ruclips.net/video/LM0tW2MZJZ4/видео.html
    А как же event.target ? До изучения контекста всегда решал подобную задачу event.target или event.currentTarget по ситуации.

  • @persoundproducer
    @persoundproducer 6 лет назад

    а можно ли было на 31 строчку просто прописать elem.style.dispalay = "none"? В чем смысл именно делать параметром вызов?

  • @user-ri8ow3qh7l
    @user-ri8ow3qh7l 7 лет назад +2

    Да неужели, сколько лет я уже жду корс по javascript от лаврика.

  • @optimusprime9456
    @optimusprime9456 3 года назад +1

    Хорошо знаю 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

  • @catshannon5064
    @catshannon5064 6 лет назад +12

    Дмитрий Лаврик, я нашел ошибку в вашем коде. Не return Math.floor(Math.random()*(max-min+1));
    а return min + Math.floor(Math.random()*(max-min+1));
    Ваш код работает нормально поскольку min = 0, возьмите другой min и работать не будет.

    • @user-be7pc2of8n
      @user-be7pc2of8n 4 года назад

      Так в прошлом уроке min + просто перенесено в конец строки: Math.floor(Math.random()*(max-min+1)) + min

  • @user-vv3ue7rg8h
    @user-vv3ue7rg8h 3 года назад

    41:14 - Ещё можно анонимную функцию в onclick и туда items[i].classList.toggle('item-active'), только если в цикле писать не var i, а let i

  • @oleksiidatsiuk9104
    @oleksiidatsiuk9104 5 лет назад

    Это было сложно, но я понял)

  • @GrafKarlsonskiy
    @GrafKarlsonskiy 5 лет назад

    44:30 почему нет? В жизни же коту можно дать ускорение. И как потом дальность полета определить тогда, если параметр ускорение не передаем?

  • @xxl7555
    @xxl7555 7 лет назад

    спсибо

  • @BTL4JUR
    @BTL4JUR 4 года назад

    Бесценное объяснение, как дважды два.
    Человек свободно владеет тем, что объясняет.

    • @web4453
      @web4453 4 года назад

      Да это один из лучших преподавателей в инете, я даже могу сказать, что не знаю лучше чем он. На этапе верстки еще был вейап что-то наподобие, но там совсем детский сад, а тут уже программирование. Надеюсь этот человек получает достойную оплату своего труда.

  • @oleksiykurylyuk4696
    @oleksiykurylyuk4696 4 года назад

    Здравствуйте.
    Спасет оборачивание в анонимную немедленно вызываемую функцию (IIFE):
    items[i].onclick = function (x){
    return activeItem}(i);
    Function activeItem(x){
    Items[x].classList.toggle(‘item-active’)
    }

  • @Max_Reason
    @Max_Reason 6 лет назад

    Дмитрий, а почему вы говорите на 43:00, что только this можно применять и замыкание тут применить невозможно? Это же не так. Через замыкание можно решить данную задачу.

  • @aleksejsaleksejevs7818
    @aleksejsaleksejevs7818 5 лет назад

    Учитель! Подскажите пожалуйста, на 1:30:19 вы создаёте функцию callback, которая выполниться после того как элемент исчезнет, так зачем же создавать эту функцию, если можно в if statement после clearInterval, прописать исчезновение?

    • @MrDannyCotta
      @MrDannyCotta 5 лет назад

      Aleksejs Aleksejevs насколько я понял тут фишка в том что можно любое действие прописать , а не определенное - то есть функция становится универсальной и её можно применять к разным объектам с разным колбэком . Просто в параметр функции где привязан колбэк можно записать любую функцию

  • @saskirakosyan5268
    @saskirakosyan5268 5 лет назад

    а можно принимать addevantListener() metod без исползвания this?

  • @oleksiisakhniuk8773
    @oleksiisakhniuk8773 7 лет назад

    В примере на 41:40 можно обойтись this же?
    for (var i = 0; i < items.lenth; i++){
    items[i].onClick = function{
    classList.toogle('item-active');
    }
    }
    Так будет же работать?

    • @serebniti
      @serebniti 6 лет назад

      будет но это не эффективно. Вы же память жрете .

  • @mumusus
    @mumusus 6 лет назад

    Про This если мы вызываем без скобок и присваиваем переменной то это отложенный вызов, а если у функции есть параметры как ее без скобок присвоить переменной?

    • @alexbel3021
      @alexbel3021 6 лет назад

      var func = myFunc.bind(null, arg1, arg2, ...);

  • @ivansidorov5
    @ivansidorov5 7 лет назад +1

    Все подробно объяснил, про контекст стало понятно. Но с замыканиями я не понял, Дмитрий объяснил что это просто адресация к переменной к родительском пространстве имен. Но во всех примерах в интернете и книгах по замыканиям была какая-то жесть с возвратом функций и т.д. а тут о ней ни слова

    • @user-qh9yz2ro7r
      @user-qh9yz2ro7r 7 лет назад

      если функция находится в функции, то она видит все переменные родительской функции по правилу замыкания... А Дмитрий - он просто напросто избегает тавтологии и реально крутой преподаватель, потому и все так просто и понятно.. Если бы не его уроки- я бы никогда не понял ничего по програмированию... В который раз- благодарю за уроки и продолжаю учиться)

  • @vvv7220
    @vvv7220 5 лет назад

    Физ мат ВУЗа обязателен для понимания программирования? Я тракторист, есть ли шансы понять JS ?

    • @moonbreathing
      @moonbreathing 5 лет назад

      физмат вам не нужен, дерзайте, изучайте

  • @azelsky
    @azelsky 6 лет назад

    боженька

  • @phpdevelopercode636
    @phpdevelopercode636 3 года назад

    Я при событии вместо this использовал объект event тоже работает 39.09

  • @yuripetuhov627
    @yuripetuhov627 6 лет назад

    Дмитрий такой вопрос а как реализовать что бы рамка медленj появлялась и уходила через toggle

    • @user-vu6hn4ul2i
      @user-vu6hn4ul2i 6 лет назад

      Yuri Petuhov анимацию в стиле применять, через css.

  • @antonriazhenov5860
    @antonriazhenov5860 6 лет назад +2

    почему я переписываю все точь-в-точь как на экране(проверяю все в плоть до каждого символа) и консоль мне дает ошибку

    • @sergannn
      @sergannn 6 лет назад

      не нужно переписывать, нужно понимания писать

  • @vovk1805
    @vovk1805 7 лет назад

    Как записаться на вебинар следующий?