----------------------------------- Функции высшего порядка (HigherOrderFunctions)---------------------------------- 00:00:00 Определение 00:02:03 Математическая функция 00:05:57 Функция обратного вызова (callback) 00:09:33 Замыкание 00:10:51 Цепочка вызовов 00:12:40 Сохранение кэша с помощью замыкания 00:18:29 Добавление функции поведение логирования 00:21:45 Обобщение ---------------------------------- Применение функций высшего порядка --------------------------------------------------- 00:22:45 Сallback 00:25:32 Сallback асинхронной функции считывание файла 00:28:36 Сallback именованный 00:33:01 Сallback-timer 00:36:20 Сallback-timer-curry 00:38:59 Listener 00:41:10 Listener-timer 00:46:59 Event 00:53:45 Event-imitter 00:57:48 Deferred object (отложенный объект) 01:01:31 Errors
Спасибо за лекции. Вполне логично но почему то не когда не думал и не видел что можно замкнуть объект в функции и использовать его с разными вызовами функции что бы ссылки были разные. Спасибо за идею и за знаний Тимур Гафарович!
Это не цикл и не рекурсия, это итерация, но она происходит циклически (т.е. повторяющиеся действия для каждого элемента) и рекурсивно (т.е. когда доходим до конца, то начинаем сначала). Я неправильно применил термин. Если бы там был setTimeout или setImmediate, то тогда бы это точно была рекурсия через события, внутри функции содержался бы непрямой вызов самой себя, отложенный во времени, а тут setImmediate как раз от этого нас избавляет, внутри setImmediate кстати реализована рекурсия, потому, что он там внутри делает аналог setTimeout каждый раз.
Тимур Гафарович, я делаю повторение материала то что проходил прошлой недели и в этот раз более лучше понял на счет асинхронности в JS с помощью примера 7-listener-timer.js. Но если использовать какой то таймер кроме setInterval тогда получаем результат только первого итерирование и всего один раз. То есть варианты кроме setInterval решают вопрос с асинхронности но не решают работать с listener. Может я что то не правильно понял 🤷♂
Блин не могу понять к чему здесь bind const sum = (a, b, callback) => callback(a + b); sum(5, 2, console.log.bind(null, 'sum(5, 2) =')); Как вообще это работает?)) Пытаюсь sum(5, 2, (err, data)=>{ if (err) throw new Error console.log(data) }); - не работает как мне вернуть результат? подскажите пожалуйста
let callback = function(x, y) console.log(x + y) const sum = (a, b, callback) => callback(a, b); sum(5, 2, callback); - вот так работает. А как console.log() и bind работает все равно не понял
@@ДмПРКП привет! bind позволят передать аргумент в функцию НЕ вызывая ее саму, потому в примере из лекции сперва вылезает строчка, а затем результат сложения. Callback отрабатывает со строчкой раньше и затем уже показывает результат, bind впихнул аргумент в callback перед результатом сложения
этот материал лучше большинства платных курсов! спасибо вам огромное!
----------------------------------- Функции высшего порядка (HigherOrderFunctions)----------------------------------
00:00:00 Определение
00:02:03 Математическая функция
00:05:57 Функция обратного вызова (callback)
00:09:33 Замыкание
00:10:51 Цепочка вызовов
00:12:40 Сохранение кэша с помощью замыкания
00:18:29 Добавление функции поведение логирования
00:21:45 Обобщение
---------------------------------- Применение функций высшего порядка ---------------------------------------------------
00:22:45 Сallback
00:25:32 Сallback асинхронной функции считывание файла
00:28:36 Сallback именованный
00:33:01 Сallback-timer
00:36:20 Сallback-timer-curry
00:38:59 Listener
00:41:10 Listener-timer
00:46:59 Event
00:53:45 Event-imitter
00:57:48 Deferred object (отложенный объект)
01:01:31 Errors
дякую
Чудова лекція! Дякую за вашу працю!
Тимур спасибо за лекцию и за твой труд! Комент для продвижения.
Спасибо за лекции. Вполне логично но почему то не когда не думал и не видел что можно замкнуть объект в функции и использовать его с разными вызовами функции что бы ссылки были разные. Спасибо за идею и за знаний Тимур Гафарович!
Даже не начав смотреть данное видео, сразу лайк и коммент ;)
Дуже класний метаріал, дякую!
Велика подяка, за таку велику кількість дуже корисного матеріалу!
Офигенная лекция! Примеры хорошие! Спасибо!
Лучший материал по js, спасибо огромное
Ох буду пересматривать и не один раз.
Спасибо большое! очень интересно и познавательно.
Стараемся, все самое лучшее только сейчас и только для вас, совершенно бесплатно
как всегда классная лекция с ценним содержимим. жаль что не инглиш. "parameter needed" - немного повеселило )). никада такова не слишал ))
круто. Спасибо
Спасибо!
34:07 =))) "Тяжелое детство в браузере"
Ничего не понятно, но очень интересно 🌚
46:50 почему рекурсия? Разве это не цикл?
Это не цикл и не рекурсия, это итерация, но она происходит циклически (т.е. повторяющиеся действия для каждого элемента) и рекурсивно (т.е. когда доходим до конца, то начинаем сначала). Я неправильно применил термин. Если бы там был setTimeout или setImmediate, то тогда бы это точно была рекурсия через события, внутри функции содержался бы непрямой вызов самой себя, отложенный во времени, а тут setImmediate как раз от этого нас избавляет, внутри setImmediate кстати реализована рекурсия, потому, что он там внутри делает аналог setTimeout каждый раз.
Тимур Гафарович, я делаю повторение материала то что проходил прошлой недели и в этот раз более лучше понял на счет асинхронности в JS с помощью примера 7-listener-timer.js. Но если использовать какой то таймер кроме setInterval тогда получаем результат только первого итерирование и всего один раз. То есть варианты кроме setInterval решают вопрос с асинхронности но не решают работать с listener. Может я что то не правильно понял 🤷♂
Тимур, Ваш плейлист "основы программирования", он выстроен по порядку или там просто "накиданы" лекции>?
Смотреть нужно в этом порядке github.com/HowProgrammingWorks/Index
Подскажите , что в контексте JS означает термин «лямбда» ? Или подскажете в какой вашей лекции это можно подсмотреть ?
Функции, у которых есть только лексический контекст и нет объектного (нет this). Например: const twice = x => x * 2;
👏
привет
26:19 лямбда разве не третий аргумент?
Пример 8-event.js на 48:39 , не проще сделать функцию adder которая принимает сразу три аргумента initial value , max , function ?
а второй поток можно создать в js чтобы обойти большой массив вместо setInterval?
Можно, но массив должен быть типизированный и по этому есть лекция и по потомкам тоже
Этот курс покруче известного CS50 ))
ну CS50 это же не для профессиональных программистов, CS50 это ознакомительный курс для гуманитариев и домохозяек, он так и позиционируется
function curry(fn, ...args) {
const curried = (...moreArgs)=>
fn.length
function curry(fn, ...args) =>(...moreArgs)=>
fn.length
Блин не могу понять к чему здесь bind
const sum = (a, b, callback) => callback(a + b);
sum(5, 2, console.log.bind(null, 'sum(5, 2) ='));
Как вообще это работает?))
Пытаюсь
sum(5, 2, (err, data)=>{
if (err) throw new Error
console.log(data)
}); - не работает
как мне вернуть результат? подскажите пожалуйста
let callback = function(x, y) console.log(x + y)
const sum = (a, b, callback) => callback(a, b);
sum(5, 2, callback); - вот так работает. А как console.log() и bind работает все равно не понял
@@ДмПРКП привет! bind позволят передать аргумент в функцию НЕ вызывая ее саму, потому в примере из лекции сперва вылезает строчка, а затем результат сложения. Callback отрабатывает со строчкой раньше и затем уже показывает результат, bind впихнул аргумент в callback перед результатом сложения
@@TheTexPro я уже теперь знаю, мой джаваскрипт не был так силён, год назад))
@@TheTexPro но все равно спасибо!
@@ДмПРКП если вдруг кто не знает смотрте прошлую лекцию: ua-cam.com/video/ND8KQ5xjk7o/v-deo.html
Слышно дыхание лектора, как будто одышка при какой-то болезни.
Сам болел пневмонией поэтому бросается в глаза*
Наверно я простуженный читал, уже не помню
круто. Спасибо