Колбэки и функции высшего порядка. Фундаментальный JavaScript

  Рет қаралды 17,597

Михаил Непомнящий

Михаил Непомнящий

3 жыл бұрын

Что такое функция высшего порядка и что такое колбэк, он же функция обратного вызова. Разбираемся на простых примерах и пытаемся ухватить саму идею.
Колбэки - это функции, которые передаются другим функциям или методам в качестве аргумента.
Функции высшего порядка - это функции, которые либо принимают другую функцию в качестве аргумента, либо возвращают новую функцию в результате вызова.
_ _
Мои курсы по вебу с купонами:
✅ mishanep.com/
📢 Заказать консультацию можно здесь pcgramota.com/courses/konsult...

Пікірлер: 73
@user-cc1xo4dl8r
@user-cc1xo4dl8r 2 ай бұрын
Если не знаете что такое коллбеки, то это лучшее видео. Спасибо вам Михаил!
@user-bm8vv7nl3m
@user-bm8vv7nl3m 3 ай бұрын
Спасибо за понятное объяснение! Почему везде так сложно объясняют, с такими заумными для меня примерами и терминами? Ну да, я чайник. Но если бы я понимала их термины, я бы и про callback уже знала. и не рылась в инете в поисках информации. Еще раз спасибо за то, что простым языком объяснили суть callback.
@kirafilya
@kirafilya 6 ай бұрын
Господи, это лучшее объяснение колбэка, которое я видела! Спасибо!
@faster630
@faster630 7 күн бұрын
Даа, спасибо! Не зря подписался. Коротко и по делу.
@yurashtefanko1603
@yurashtefanko1603 3 жыл бұрын
Спасибо Вам. Вы единственный человек, который всё понятно объяснил. 👌👌👌
@user-bn7ij8cr1i
@user-bn7ij8cr1i Жыл бұрын
Как успехи в обучении?)
@vitalygaraev8093
@vitalygaraev8093 Жыл бұрын
Неудержался что бы не написать комментарий. Очень ясный ум, ясное понимание темы и такое же прозрачное объяснение. Жаль, что больше ничего не публикуете. Спасибо!
@mishanep
@mishanep Жыл бұрын
Спасибо за похвалу. Видео публикую почти каждую неделю. Темы разные. На этой неделе по JS. Только плейлист другой.
@alfa13135
@alfa13135 Жыл бұрын
Хорошо , когда обьясняют постепенно по пунктам.
@aliana4400
@aliana4400 2 жыл бұрын
Михаил, спасибо за этот плейлист)) очень нравится ваша манера рассказывать просто и точно про сложные для меня вещи)
@maratfaizer
@maratfaizer Жыл бұрын
главное, я применял в работе hoc - но только сейчас понял, что это они и были) и еще реально интересное замечание, что методы работы с массивами по сути тоже hoc
@manzhosoleg
@manzhosoleg Жыл бұрын
просто и точно про сложные вещи , спасибо
@user-kp5rg6zs8d
@user-kp5rg6zs8d Жыл бұрын
Михаил, спасибо большое Вам! Это тот курс, который мне был необходим. После него намного легче стало формировать логику в решении задач. Круто!
@ginhop1057
@ginhop1057 Жыл бұрын
Хорошее объяснение👍
@profuter
@profuter 4 ай бұрын
Наконец-то простым языком объяснили и я понял, что же такое колбэк :)
@ihorlevit5369
@ihorlevit5369 2 жыл бұрын
Спасибо за обьяснение. Кстати первые две функции были примером "Чистых функций". Так что видео охватывает тему чистых функций и функций высшего порядка
@user-vg5ln5tg9d
@user-vg5ln5tg9d Жыл бұрын
Коротко и яснооооооо!
@Ormusic071
@Ormusic071 3 жыл бұрын
Прекрасно объяснили, спасибо большое!
@Albert_Hall
@Albert_Hall Жыл бұрын
Все прекрасно!
@user-tt5uf9nm5j
@user-tt5uf9nm5j 2 жыл бұрын
все сразу стало так понятно, спасибо!!
@RewCSharp
@RewCSharp 5 ай бұрын
Спасибо за урок!
@iakivpekarskyi1631
@iakivpekarskyi1631 Жыл бұрын
Благодарю! Очень круто объяснили!!!
@ArtemSlotin
@ArtemSlotin Жыл бұрын
Спасибо. Очень ясно и понятно обьясняете!
@mavldr
@mavldr Жыл бұрын
Спасибо за видео ❤
@MrUnknownman1986
@MrUnknownman1986 3 жыл бұрын
Отличное объяснение !
@user-ec1vt8kq9v
@user-ec1vt8kq9v Жыл бұрын
Гениально! У вас талант объяснять
@artyrdanilov2791
@artyrdanilov2791 Жыл бұрын
Отличное видео ! Многое прояснило !!!
@miliba9485
@miliba9485 3 жыл бұрын
объяснение прекрасное!
@AL-zg5ff
@AL-zg5ff 2 жыл бұрын
Зашел после книги "Выразительный Javascript " 3 издание. Два дня пытался вдумчиво прочитать что же там написано в главе про функции высшего порядка. В итоге за 14 минут объяснили здесь. Спасибо огромное!
@lomik31_
@lomik31_ 2 жыл бұрын
+++ ахахах
@AchtungBaby-io7zl
@AchtungBaby-io7zl Жыл бұрын
вначале был реализован метод map возвращающий измененный массив) очень крутое и логичное объяснение! спасибо!
@Dismas_43
@Dismas_43 7 ай бұрын
Круто, спасибо, все очень понятно!
@sergey_zatsepin
@sergey_zatsepin 3 жыл бұрын
Спасибо за урок
@AGM140580
@AGM140580 2 жыл бұрын
Большое спасибо!
@GEO-le5ft
@GEO-le5ft 2 жыл бұрын
отл урок. Доходчиво обьясняешь. Спасибо.
@agrbear
@agrbear 2 жыл бұрын
Комент в поддержку канала 🙏
@shyma_grasious
@shyma_grasious 3 жыл бұрын
О боги, спасибо за такого инструктора ) очень доходчиво и понятно. Не хватило только 2-3-этажного колбека для рассмотра
@SomeTricks
@SomeTricks 3 жыл бұрын
2-3 этажа - прошлый век. Уже ведь есть промиссы, а в es7 ввели async/await.
@mishanep
@mishanep 3 жыл бұрын
Промисы и асинхронные функции тоже со временем рассмотрим на канале.
@gorbulevsv
@gorbulevsv Жыл бұрын
Круто!
@user-ko7cm1te4l
@user-ko7cm1te4l 9 ай бұрын
Спасибо !
@kamol8861
@kamol8861 2 жыл бұрын
оч качественно
@max_ok
@max_ok 2 жыл бұрын
👍
@Hakanai2022
@Hakanai2022 9 ай бұрын
const myArr = [2, 3, 4]; function elements(el) { return el * 2; } console.log(myArr.map(elements)); вот этот код тоже будет считаться как колбэк функция? Как я понял метод тоже функция и я передаю функцию "elements" как аргумент в метод .map()
@barchaan
@barchaan 10 ай бұрын
вау !
@Vladimir-ww1be
@Vladimir-ww1be 3 жыл бұрын
Спасибо толково объясняете. Как совет, опять же хотя кому как, подумайте может немного ускорить подачу материала, смортю вас на 1.75 и параллельно код успеваю писать, может тогда просмотры увеличаться. Удачи!
@mishanep
@mishanep 3 жыл бұрын
Я весь KZfaq на двушке смотрю)) при этом мне люди порой пишут, что я для них слишком быстро говорю) но я в любом случае экспериментирую. Спасибо.
@Albert_Hall
@Albert_Hall Жыл бұрын
@@mishanep нормальная скорость, Михаил. Отличная! Кто хочет, тот ускорит. Я смотрю вас на обычной скорости и получаю удовольствие. Так как параллельно в голове прокручиваю необходимые мне сопутствующие мысли и сценарии. Быстрота в подаче раздражает - превращаешься в ведро, куда сливают инфу. Изучая что-то новое, у человека должно оставаться время на обдумывание параллельно тому, что говорит лектор. Если же смотришь, чтобы что-то обновить в голове, увеличиваешь скорость. И все довольны.
@ijambookvia
@ijambookvia 2 жыл бұрын
Здравствуйте, спасибо большое за Ваше видео, все доходчиво и понятно. Мне как новичку было все ясно. но я только одного не поняла: откуда берётся аргумент num? возможно, глупый вопрос и Вы вряд ли заметите, но я просто что-то упустила из виду это...
@mishanep
@mishanep 2 жыл бұрын
Какой таймкод? Я не помню своих видео наизусть :)
@ijambookvia
@ijambookvia 2 жыл бұрын
@@mishanep вот к примеру 11:00 , function numSquared, её параметр num, но откуда она берет этот аргумент? я этого немного не поняла
@mishanep
@mishanep 2 жыл бұрын
@@ijambookvia numSquared как и любая другая функция будет рассматриваться внутри copyArrayAndDoSmth по именем instructions. Поэтому когда идет вызов instructions(arr[i]), то вызывается переданный колбэек, в данном случае numSquared и ему передается значение arr[i], которое принимает параметр num
@ijambookvia
@ijambookvia 2 жыл бұрын
@@mishanep поняла, спасибо большое!
@user-ue7ii9th4o
@user-ue7ii9th4o 3 жыл бұрын
Спасибо за видео! Но одно для меня остается непонятным, почему Вы называете сущность, являющуюся по сути просто делегатом, callback-функцией? Ведь "издревна" callback-функция - это функция назначение которой быть выполненной по завершении работы другой функции в которую она и передана для этого. И название у нее соответствующее. Либо это так принято в JS? Странно...
@mishanep
@mishanep 3 жыл бұрын
Думаю вы правы, отчасти здесь действительно смешиваются два понятия. Но в среде JavaScript, насколько я встречаю, и то и другое называется колбэком.
@SomeTricks
@SomeTricks 3 жыл бұрын
Здорово объясняешь! Но! 1. ESLint ругается на i++ (например airbnb) 2. Каждую итерацию цикла, вычислять .length не круто. По-хорошему ее надо перед циклом записать в переменную. 3. Почему не использовал map вместо цикла?
@mishanep
@mishanep 3 жыл бұрын
1. airbnb - жесткий, мы на работе от него отказались, используем конфиг гугла (насколько помню у него к i++ претензий не было). 2. Length - насколько я его понимаю, это кэшированное свойство, которое автоматически меняется при изменении длины массива и не требует перерасчета при обращении к нему. 3. Map не спользовался как раз потому, что он уже принимает колбэк, а в видео мы разбирали само понятие.
@olegsoul6016
@olegsoul6016 3 жыл бұрын
@@mishanep 3. Цикл, окей, но почему тогда не "for of"? Более современный и лаконичный синтаксис.
@mishanep
@mishanep 3 жыл бұрын
@@olegsoul6016 странные вопросы вы задаете :) для сути видео что-то принципиально от этого изменилось бы?
@olegsoul6016
@olegsoul6016 3 жыл бұрын
@@mishanep Хм, я бы тогда сказал - странный ответ ваш на мой вопрос)) Раз все равно что использовать, для чего вы тогда показываете современные методы, что отличает их от более старых (кстати в том же самом примере в цикле вы почему-то использовали для возведения в степень метод из ES6, а не Math.pow()...)? И, мне казалось, отвечать вопросом на вопрос, не очень культурно...сори, если чем-то задел вас, я просто хотел разобраться в вашей логике подачи материала.
@mishanep
@mishanep 3 жыл бұрын
@@olegsoul6016 не вижу смысла вступать в прения. На мой взгляд для логики изложения конкретного видео не было никакой разницы. Возможно и был какой-то умысел, когда готовился материал для видео, но спустя два месяца после публикации об этом уже сложно что-то сказать.
@mityadima
@mityadima 2 жыл бұрын
А когда замыкания рассмотрите?
@mishanep
@mishanep 2 жыл бұрын
Давно уже есть на канале kzfaq.info/get/bejne/eLWapZV9mLy8o5c.html
@Emil-ey7pn
@Emil-ey7pn Жыл бұрын
А как элементы массива автоматически идут в nam?
@dmitry7417
@dmitry7417 Жыл бұрын
Элементы массива не "идут автоматически в num". Смотрите на функции numSquared и divideBy2 как на формулы, которые мы вкладываем в функцию copyArrayAndDoSmth в качестве аргументов при её вызове. Эти аргументы (формулы) заменяют параметр instructions в теле функции copyArrayAndDoSmth. С помощью этого параметра (instructions) мы производим соответствующие вычисления над числами, которые стоят первым аргументом функции copyArrayAndDoSmth.
@user-zj3ox1oh6n
@user-zj3ox1oh6n Жыл бұрын
@@dmitry7417 добрый день. А можно ли таким способом вывести четные/нечетные числа. Я попытался, он лишь проверяет их, выводит true или false
@dmitry7417
@dmitry7417 Жыл бұрын
@@user-zj3ox1oh6n добрый... Попробуйте таким образом: function getOddNum(num) { if (num % 2 !== 0) { return num; } else { return false; } }
@dmitry7417
@dmitry7417 Жыл бұрын
@@user-zj3ox1oh6n Предлагаю сперва показать свой вариант : )
@dmitry7417
@dmitry7417 Жыл бұрын
@@user-zj3ox1oh6n Интересное решение. Вместо простенького else if такая хитрая штука : )
Замыкания в JavaScript с примерами. Фундаментальный JavaScript
22:39
🌊Насколько Глубокий Океан ? #shorts
00:42
King jr
Рет қаралды 1,7 МЛН
Smart Sigma Kid #funny #sigma #comedy
00:19
CRAZY GREAPA
Рет қаралды 9 МЛН
Её Старший Брат Настоящий Джентельмен ❤️
00:18
Глеб Рандалайнен
Рет қаралды 8 МЛН
Универ. 10 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:04:59
Комедии 2023
Рет қаралды 1,3 МЛН
Что такое промисы в JavaScript. Фундаментальный JavaScript
24:51
Михаил Непомнящий
Рет қаралды 41 М.
Деструктуризация объектов. Фундаментальный JavaScript
15:28
Что такое рекурсия. Фундаментальный JavaScript
20:32
Михаил Непомнящий
Рет қаралды 21 М.
Деструктуризация массивов. Фундаментальный JavaScript
15:20
Функции высшего порядка в JavaScript
15:12
Веб-разработка - DevMagazine
Рет қаралды 1,7 М.
Чудовищно функциональный JavaScript
21:31
Как пройти в IT?
Рет қаралды 54 М.
01.  Мать его Callback (JavaScript)
28:59
IT-KAMASUTRA
Рет қаралды 39 М.
🌊Насколько Глубокий Океан ? #shorts
00:42
King jr
Рет қаралды 1,7 МЛН