- Видео 55
- Просмотров 28 471
IT Papa
Беларусь
Добавлен 22 сен 2019
Мечтаете построить успешную карьеру, но не знаете с чего начать?
Я научу вас проходить собеседования и развивать карьеру
Я научу вас проходить собеседования и развивать карьеру
Алгоритм бинарного поиска JavaScript
задача для джаваскриптизеров на знание базовых алгоритмов
Просмотров: 127
Видео
оптимизация сайта, web страниц, page speed
Просмотров 65Год назад
как можно проверить сайт на производительность, page speed
массивы и коллекции языка JavaScript
Просмотров 88Год назад
разбираемся как можно использовать массивы и коллекции в языке javascript на примере задачи поиска повторений в произвольной строке
методы массивов JavaScript. Магия и примеры
Просмотров 218Год назад
методы массивов JavaScript. Магия и примеры
императивный и декларативный javascript
Просмотров 513Год назад
императивный и декларативный javascript
что было раньше - курица или яйцо, с точки зрения программиста?
Просмотров 457Год назад
что было раньше - курица или яйцо, с точки зрения программиста?
Javascript objects. Senior level. Скрытые настройки объектов
Просмотров 69Год назад
Javascript objects. Senior level. Скрытые настройки объектов
приколы языка js, массив равен не массиву!
Просмотров 265Год назад
приколы языка js, массив равен не массиву!
3d снежинки, снег в браузере. На языке js
Просмотров 135Год назад
3d снежинки, снег в браузере. На языке js
JS неправильно считает. Действия с дробями в js. 0.1+0.2
Просмотров 167Год назад
JS неправильно считает. Действия с дробями в js. 0.1 0.2
промисы js. promise в языке javascript простыми словами
Просмотров 7 тыс.Год назад
промисы js. promise в языке javascript простыми словами
Преобразование типов в JS или проститутка!
Просмотров 1,9 тыс.4 года назад
Преобразование типов в JS или проститутка!
Анимация CSS online - рейтинговые звездочки GooglePlay
Просмотров 404 года назад
Анимация CSS online - рейтинговые звездочки GooglePlay
Анимация, ховеры и фишки CSS онлайн. Карточки категорий
Просмотров 574 года назад
Анимация, ховеры и фишки CSS онлайн. Карточки категорий
Анимация логотипа CSS на сайте Walmart
Просмотров 684 года назад
Анимация логотипа CSS на сайте Walmart
Иконки социальных сетей - Анимация, hover и фишки CSS
Просмотров 2264 года назад
Иконки социальных сетей - Анимация, hover и фишки CSS
Анимация keyframes CSS - логотип Twitter
Просмотров 694 года назад
Анимация keyframes CSS - логотип Twitter
А обязательны эти стикеры и тупой звук клавиатуры
Как не забрасывать мне в реки шортсы с нулевыми просмотрами и комментариями
! =[] || null & & [] + true - "false"
Привет, благодаря вам я понял как использовать промисы. 2-дня не мог понять не то как работает а для чего используется и в каких ситуациях использовать!!! Спасибо большое за пример!!!
жесть
Браво! спасибо!
Спасибо за видео) Наконец-то рекомендации полезный контент подвезли :)
Спасибо
🎉
Лучшее объяснение. Респект автору!
Бро смотрю тови видео допустим про промисы очень все понятно и классно не думал курс выпустить в таком формате , спасибо за твое время
Это тоже не лаконично. Для оптимального решения данной задачи достаточно просто положить все кнопки в массив и пройдясь по нему навесить колбеки на нажатие с добавлением состояния кнопки, хотя реализация на промисах очень интересна.
Супер! Хотелось бы побольше роликов про интересные темы JS в коротком формате!
Задача для стриптизеров
Прости, но может сразу самому стоит подучить js перед тем как что то в сеть выкладывать? let? Серьезно? 3 одинаковых функции? Серьезно? В 4 строчки кода это и с промисом и без решается.
Можно все...смотря какая цель
@@itpapa-courses цель научить. Чтоб потом молодые ребята на проектах не доказывали что let это нормально и что ооп это миф. А когда они насмотрятся таких видел их сложно переучить и они теряют работу, на рынке проще найти нового чем переучивать.
@@Ramosok чел, не надо так сурово. Все начинают с простых примером и постепенно переходят к ООП
@@МишаМихаил-ф7х нет, к сожалению это так не работает. Это как учиться писать, типо ты сначало пиши как можешь, не ещё а исчо не хорошо а ХАРАШЁ, а орфографии потом придет, так вот не придет.
@@Ramosok я учил питон так и сам учу других. Зачем новичку сразу давать ООП? Пусть научится базам
Довольно интересный пример. А вообще можно довольно кратко написать и через делегацию событий в JS : const isAllDone = {} // в объекте будем записывать ключи, когда пользователь нажмет на кнопку //вешаем на родителя обработчик события, что позволит нам и динамически в будующем добавлять еще кнопки и через делегацию событий и всплытие сразу обработать все клики на все кнопки container.addEventListener('click', e => { if (e.target.tagName === 'BUTTON') { // проверяем что та сущность на которую мы кликнули действительно является кнопкой const text = e.target.textContent // берем текст ноды(кнопки) isAllDone[text] = text // записываем в объект ключ/значение текста кнопки, это будем нашим индикатором , что мы нажали на кнопку if (Object.values(isAllDone).length === 3) alert('done!!!') // через статический метод объекта получает массив значений и проверяем его длину, если количество кнопок совпадает с длинной массива значит пользователь нажал все кнопки, тогда выводим alert } }) через промисы тоже довольно интересно автор написал, единственное что можно чуть улучшить и сократить код, можно избавиться от колбэка(можно и нужно сразу передать просто ссылку на resolve): const promise1 = new Promise((res, rej) => { btn1.addEventListener('click', res) }) или даже так const promise1 = new Promise((res, rej) => btn1.addEventListener('click', res)) // так еще лаконичней будет A так спасибо за видео, было довольно интересно.
ты крут, чувак)
@@FrontNinja Очень прикольно то, что когда я вернулся к этому коду через 3 месяца, первая мысль при взляде на код что он написан не очень 😅. Наверное это хороший знак, когда ты возвращаеся назад и видишь что можно было лучше сделать, значит ты развиваешься. Написать можно было лаконичнее и понятнее : Вариант 1 (без промисов): ---------------------------------------------- const btns = document.querySelectorAll('button'); const clickedBtns = {}; btns.forEach((btn, index) => { btn.addEventListener('click', () => { clickedBtns[index] = 'clicked'; if (Object.keys(clickedBtns).length === btns.length) console.log('All buttons were clicked!'); }); }); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Вариант2 (промисы): ------------------------------------------ const btns = document.querySelectorAll('button'); const promises = []; btns.forEach((btn) => { const promise = new Promise((res) => { btn.addEventListener('click', res); }); promises.push(promise); }); Promise.all(promises).then(() => console.log('All promises were resolved!')); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Плюс такого решения, что можно динамически добавлять новые кнопки и код отлично отработает и не нужно ничего дописывать. Решение абстрактное и нас не интересует сколько там кнопок, хоть 100, все отлично будет работать.
Объясни в чем суть этой элегантности в данном примере? Просто что бы было? Если у меня есть два варианта решения, почему я должен выбрать промисы?
Это называется одним словом - я должен научиться читать спецификацию. В которой сказано, что любое Property для Object представляет из себя обьект с тремя Property описывающими поведение языка, для всех случаев спецификации: доступ, перечисление, изменение. И так далее. JS это не язык, к которому можно применить привычные для других языков нормы. Это язык со своей предельно логичной архитектурой в котором нет никакой магии, если эту архитектуру знать. Дайте себе труд прочитать хоть раз спецификацию языка, а не шпаргалки с mdn или другого сайта. Раз уж вышли в публичную плоскость и решили кому-то что-то обьяснить про язык.
Вы вообще ничего не поняли из того о чем рассказали. В результате рассказали чушь. Никаким образом подобное поведение не зависит от системы исчисления. Подобное поведение зависит от того, каким образом работает представления числа с плавающей точкой с заданной точностью. В JS как и в большинстве других языков программирования, реализовано представление числа с плавающей точкой согласно стандарту IEEE-754. И именно поведение описанное этим стандартом определяет каким образом будет представлено то или иное число в процессе вычисления.
Вы не понимаете синтаксиса JS потому городе чушь. В JS все является выражением. Использование любого литерала, идентификатора или конструкции приводит к вычислению сначала это литерала и конструкции, после чего к нему применяются алгоритм вычисления основго выражения. В случае сложения вычитание и так далее, к каждой части выражения применяется метод gerValue который описан в спецификации. И уже с результатом применения этого метода и происходит математика. Иными словами, любое число, строка, обьект может иметь логику приведение его к примитивному значению которое и будет использоваться при сложении. Дали бы себе труд хоть раз открыть официальную спецификацию ECMA, чтобы не позориться публично. В качестве домашнего задания - разберитесь каким образом код: var theOne = { name: 1}; var theTwo = {name: 2}; theOne + theTwo; // 3 Будет возвращать правильный результат любой математической операции, как бы вы не меняли значение property name. Как разберетесь, запишите видео, где извенитесь перед всеми своими подписчиками и обьясните им как действительно работает JS, а не ту ахинею что вы тут рассказали.
00:00:37 *Чтобы доказать что это примитивный тип, я выведу его в консоль* console - это внешнее API. И все что Вы видите в результате его работы - это именно результат работы этого API. Любой обьект, любые данные могут быть выведены при помощи этого API ровно так, как захочет программист. А не так как они представлены на уровне спецификации. Нет ни одного API которое бы Вам показало как именно выглдяит тип в JS по причине того, что JS не имеет своего ввода вывода. И если Вы уже озаботились тем, чтобы понять как это происходит внутри - то и пользуйтесь соответствующими инструментами, которые Вам позволят заглянуть под капот RunTime. Гуглите в сторону ключей allow-natives-syntax Забегая вперед сразу скажу, что абсолютно все на уровне рантайм в JS является обьектом. Есть разница только в поведение по умолчанию. Но это Вы скоро и сами увидите если полезете под капот, а не будете нести глупости про consol и т.д.
Шляпа какая-то... Почему бы lodash не подключить просто?
@Ivan Petrov как и твоя жизнь, судя по всему😅
Для тренировки очень годно. Но не могу сказать что первый вариант был хуже. У меня вообще всё програмы собраны из масивов, if else, loops, и обьектов. Зато когда своё читаю всё понимаю отлично, но стоит добавить промисы или классы бывает сам путаюсь в своём коде. Знать их нужно, но для развития логики надо делать как умеешь сам, а потом искать как можно было бы это сократить или облегчить)🤪
свой говнокод не пахнет
И где же работает сей чудный девелопер? 😂 По-моему, ни в одно место тебя не возьмут, если ты не знаешь промисов и не используешь их в работе, а классы тебя путают.
@@phat80 я не писал что боюсь, и слово не умею тоже не было. И представь да я работаю и этим зарабатываю.
@@worldweb9025 но если вы будете работать, избегая классов и промисов, то я не знаю, кого это может устроить. Это то же самое, как писать на ООП языке в процедурном стиле. Сначала это вроде даже удобно и даже более эффективно с точки зрения быстродействия, а потом когда кодовая база разрастается, не понятно, как это все поддерживать.
Странно что в js у строки нету метода что выводит количество вхождения другой строки в исходную
Понравились наложенные аплодисменты))
У меня больше ассоциация с машиной состояний, если к примеру потребуется определенная комбинация кнопок, или заданий тайм-аут для нужной комбинации, иначе всё сначала.
Мне сразу пришло в голову решение взять из массива число нулей, потом удалить все нули из него и добавить удаленное количество нулей в новый массив, но я думаю мое решение будет Оn^2
Разрешите доебаться. Почему первые три переменных без let или const? Зачем промисы присваиваются в let, а не в const?
Спасибо! Ваше видео было пятым по этой теме из тех, что я посмотрела. И только после него поняла преобразования.
Тогда распиши, как работает данное выражение, без помощи ГПТ ! =[] || null & & [] + true - "false"
Ну а со стороны науки яйцо было первее
Ну а теперь я уж точно знаю все тонкости программирования🤓
Ладно
Полагаю, разрешение видео можно уменьшить до размеров дверного глазка.
Нехер со смарт-часов смотреть... На ноуте все отлично видно.
Интересный пример использования промисов, спасибо большое. Хотелось бы побольше таких примеров с промисами
Поддерживаю, а авторус пасибо
Спасибо!
хорош
Хахах
баян, но спасибо за подробное объяснение
😆
Здравствуйте, отлично объясняете, будет ли продолжение?)
Супер, наконец-то понял 💪💪💪
Спасибо БОЛЬШОЕ, для новичка самое то. А те, кто не новички, не надо комментировать, вам дальше, проходите молча.
Посади на Wordpress
Очень хорошие уроки.
Видео очень нравятся. Всё понятно объясняете.