ch
Feedback
Олег программист | Фронтендер

Олег программист | Фронтендер

前往频道在 Telegram

Frontend разработка HTML CSS JavaScript Программирование По рекламе и всем вопросам @olegboomer

显示更多
3 297
订阅者
无数据24 小时
无数据7 天
-2930 天

数据加载中...

相似频道
无数据
有任何问题?请刷新页面或联系我们的客服
标签云
无数据
有任何问题?请刷新页面或联系我们的客服
进出提及
---
---
---
---
---
---
吸引订阅者
八月 '24
八月 '24
+2
在0个频道中
七月 '24
+8
在0个频道中
Get PRO
六月 '24
+5
在0个频道中
Get PRO
五月 '24
+3
在0个频道中
Get PRO
四月 '24
+4
在0个频道中
Get PRO
三月 '24
+1
在0个频道中
Get PRO
二月 '24
+1
在0个频道中
Get PRO
一月 '24
+2
在0个频道中
Get PRO
十二月 '23
+4
在0个频道中
Get PRO
十一月 '23
+5
在0个频道中
Get PRO
十月 '23
+7
在0个频道中
Get PRO
九月 '23
+4
在0个频道中
Get PRO
八月 '23
+3
在0个频道中
Get PRO
七月 '23
+12
在0个频道中
Get PRO
六月 '23
+12
在0个频道中
Get PRO
五月 '23
+20
在0个频道中
Get PRO
四月 '23
+13
在0个频道中
Get PRO
三月 '23
+28
在0个频道中
Get PRO
二月 '23
+22
在0个频道中
Get PRO
一月 '23
+20
在0个频道中
Get PRO
十二月 '22
+125
在0个频道中
Get PRO
十一月 '22
+187
在0个频道中
Get PRO
十月 '22
+249
在0个频道中
Get PRO
九月 '22
+46
在0个频道中
Get PRO
八月 '22
+54
在0个频道中
Get PRO
七月 '22
+119
在0个频道中
Get PRO
六月 '22
+441
在0个频道中
Get PRO
五月 '22
+104
在0个频道中
Get PRO
四月 '22
+520
在0个频道中
Get PRO
三月 '22
+1 146
在0个频道中
Get PRO
二月 '22
+281
在0个频道中
Get PRO
一月 '22
+1 797
在0个频道中
Get PRO
十二月 '21
+3 365
在0个频道中
日期
订阅者增长
提及
频道
21 八月0
20 八月0
19 八月0
18 八月+1
17 八月0
16 八月0
15 八月0
14 八月0
13 八月0
12 八月0
11 八月0
10 八月0
09 八月0
08 八月+1
07 八月0
06 八月0
05 八月0
04 八月0
03 八月0
02 八月0
01 八月0
频道帖子
Что такое IntersectionObserver в JavaScript IntersectionObserver - это мощный браузерный API, который позволяет асинхронно наблюдать за пересечением элемента (target) с его родителем (root) или областью просмотра (viewport). Другими словами, этот API обеспечивает вызов определенной функции каждый раз при пересечении целевого элемента с root или viewport. Для начала работы с IntersectionObserver необходимо с помощью конструктора создать объект-наблюдатель с двумя параметрами - функцией обратного вызова и настройками:
const observer = new IntersectionObserver(callback, options)
Функция обратного вызова будет выполняться каждый раз, когда происходит пересечение наблюдаемой области и какого-либо элемента из отслеживаемых. Она принимает массив объектов IntersectionObserverEntry, каждый из которых содержит информацию о пересечении одного элемента. Настройки позволяют гибко настроить поведение наблюдателя, например, установить пороговые значения пересечения или отступы. Вот простой пример использования IntersectionObserver:
const observer = new IntersectionObserver(entries => {
  entries.forEach(entry => {
    const intersecting = entry.isIntersecting
    entry.target.style.backgroundColor = intersecting ? "blue" : "orange"
  })
})

observer.observe(document.getElementById("test"))
В этом коде мы создаем наблюдателя, который меняет цвет фона элемента при пересечении границы viewport. Некоторые полезные примеры использования IntersectionObserver: - Ленивая загрузка изображений и контента - Бесконечная прокрутка (infinite scrolling) - Анимации, срабатывающие при скролле - Отображение прогресса просмотра страницы IntersectionObserver значительно улучшает производительность, позволяя отказаться от "дорогих" scroll-событий. Он работает асинхронно, не блокируя основной поток выполнения.

2
Вопрос с собеседования В чем отличие между Observable и Promise в JavaScript? Ответ: Observable и Promise - это два способа для работы с асинхронными операциями в JS. • Promise может завершиться успешно, либо с ошибкой, но выполняется лишь один раз. • Observable же представляет собой поток данных, которые могут быть доступны в любое время, он может генерировать несколько значений во время своей работы и быть остановлен в любое время. Соответственно, промисы больше подходят для однократных операций, таких как загрузка файла, observable отлично справляется с потоками данных, таких как обновление данных в реальном времени.
580
3
👩‍💻 Smooth Liquid Background Effect Сцена с анимированным фоном. Сделана на SVG, CSS и JavaScript. Ссылка
👩‍💻 Smooth Liquid Background Effect Сцена с анимированным фоном. Сделана на SVG, CSS и JavaScript. Ссылка
560
4
5 нейронок, которые помогут разработчику найти нужную информацию: 1. Perplexity AI 2. Elicit AI 3. Consensus AI 4. Scite AI 5. ChatPDF
822
5
没有文字...
1 020
6
Всем привет 😄 Давно не виделись )) Я тут с новостью. Сижу я значить пью кофе и пишет мне моя знакомая. Короче они ищут Фронт
Всем привет 😄 Давно не виделись )) Я тут с новостью. Сижу я значить пью кофе и пишет мне моя знакомая. Короче они ищут Фронтенд разработчика себе в команду. Ну я и сказал что напишу пост у себя в канале, помогу им с поиском 😄 Как я понял опыт не важен. Кому интересно, пишите ей @Davtyanka А я дальше пить кофе ☕️ 😄
1 135
7
Runtime в node js Node.js - это среда выполнения, которая позволяет выполнять JavaScript-код вне браузера. Это означает, что вы можете создавать серверные приложения на JavaScript, запускать скрипты локально на вашем компьютере и многое другое. Когда мы говорим о времени выполнения (runtime), мы обычно имеем в виду период времени, в течение которого запущенная программа выполняется на компьютере. Это может быть период времени с момента запуска программы до ее завершения, или период времени, когда программа работает в фоновом режиме. В JavaScript время выполнения начинается с момента запуска скрипта в браузере и заканчивается, когда скрипт завершает свое выполнение. Во время выполнения, интерпретатор JavaScript обрабатывает код, интерпретируя его строки по одной, и выполняет инструкции, которые он находит. Например, если мы создадим функцию в JavaScript, она не будет выполнена, пока мы не вызовем ее в нашем коде. Пример кода JavaScript: function multiply(a, b) { return a * b; } // вызываем функцию multiply и сохраняем результат в переменную result const result = multiply(10, 5); // выводим результат в консоль console.log(result); Таким образом, время выполнения программы (runtime) в JavaScript - это период времени, в течение которого программа выполняется, включая выполнение функций и других инструкций.
543
8
Что такое примитивные типы данных в javascript ? Попробую дать свою формулировку, на сколько это получится 😁 Итак, примитивы - это данные, которые не являются объектом и не имеют методов. В JavaScript существует 8 основных типов данных. Семь из них называют «примитивными» типами данных: number bigint string boolean null undefined symbol И один не является «примитивным» и стоит особняком: object Очень важно понять!!! Все примитивы неизменяемы, то есть они не могут быть изменены. Важно не путать сам примитив с переменной, которой присвоено значение примитивного типа. Переменной может быть переприсвоено новое значение, но существующее значение примитивного типа не может быть изменено подобно объектам, массивам и функциям. Пример для понимания: let bar = "abc" console.log(bar) // abc // Примитив не изменился bar.toUpperCase() console.log(bar) // abc // Присваиваем новой переменной let bar2 = bar.toUpperCase() console.log(bar2) // ABC // А теперь массивы let foo = [] console.log(foo) // [] foo.push("plugh") console.log(foo) // ["plugh"] Примитив может быть заменён, но он не может быть напрямую изменён. И напоследок. За исключением null и undefined, все примитивные значения имеют объектный аналог, который оборачивает значение примитивного типа: String для string примитива. Number для number примитива. BigInt для bigint примитива. Boolean для boolean примитива. Symbol для symbol примитива.
551
9
Задача: Создайте функцию, принимающую положительное целое число от 1 до 3999 (оба включены) в качестве параметра и возвращающую строку, содержащую представление этого целого числа римскими цифрами. Современные римские цифры записываются путем выражения каждой цифры отдельно, начиная с самой левой цифры и пропуская любую цифру со значением ноль. Римскими цифрами обозначается 1990 год: 1000=М, 900=СМ, 90=ХС; в результате получается MCMXC. 2008 год записывается как 2000=ММ, 8=VIII; или ММВIII. В 1666 году каждый римский символ используется в порядке убывания: MDCLXVI. Пример: solution(1000); // should return 'M' Помощь: Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1,000 Делитесь в комментариях что у вас получилось
807
10
Дорогие программисты! 👨‍💻 Поздравляю вас с Новым годом! 🎄 Желаю, чтобы в этом году ваш код стал ещё более чистым и эффекти
Дорогие программисты! 👨‍💻 Поздравляю вас с Новым годом! 🎄 Желаю, чтобы в этом году ваш код стал ещё более чистым и эффективным. Пусть в новом году каждый из вас станет мастером кодинга! 🦸‍♂️ Желаю вам, чтобы все ваши баги были только смешными 😄 и забавными, а не критическими. Пусть ваши репозитории наполняются не только кодом, но и позитивными эмоциями, а каждый merge request будет сопровождаться улыбками и хорошим настроением. 😊
896
11
Методы объекта event stopPropagation и stopImmediateProparation Метод event.stopImmediatePropagation() используется для предотвращения распространения события вверх по DOM дереву, однако он имеет более сильный эффект, чем event.stopPropagation(). Кроме того, что он предотвращает распространение события к вышестоящим элементам, он также останавливает вызов других обработчиков событий для текущего элемента. Пример использования event.stopImmediatePropagation(): document.getElementById('inner').addEventListener('click', function(event) { event.stopImmediatePropagation(); // Предотвращаем распространение события и вызов других обработчиков console.log('Inner element clicked'); }); document.getElementById('inner').addEventListener('click', function(event) { console.log('Additional inner element click handler'); }); document.getElementById('outer').addEventListener('click', function(event) { console.log('Outer element clicked'); }); В этом примере, при клике на элемент с id "inner", обработчик первого события будет вызван и выведет в консоль сообщение "Inner element clicked". Однако, обработчик второго события не будет вызван из-за использования event.stopImmediatePropagation(). Таким образом, ожидаемый вывод будет только "Inner element clicked" без вывода "Additional inner element click handler" или "Outer element clicked". Важно отметить, что порядок регистрации обработчиков событий может иметь значение при использовании event.stopImmediatePropagation(), так как это метод остановит вызов обработчиков, зарегистрированных после него для текущего элемента. Итак, основное различие между event.stopPropagation() и event.stopImmediatePropagation() заключается в том, что первый метод предотвращает распространение события только вверх по DOM дереву, в то время как второй метод предотвращает как распространение события вверх по дереву, так и вызов других обработчиков событий для текущего элемента.
451
12
FRONTEND TRENDS Ссылка на код
FRONTEND TRENDS Ссылка на код
398
13
Зачем нужен конструктор Proxy? Конструктор Proxy является мощным инструментом в JavaScript, который позволяет создавать объекты-обертки и предоставляет полный контроль над поведением этих объектов при доступе к ним и изменении их свойств. Основная цель Proxy - обеспечить перехват и кастомизацию операций на объекте, таких как чтение (get), запись (set), удаление (deleteProperty) и других. Это позволяет нам создавать ловушки для операций и добавлять дополнительную логику в обработку объектов. Пример: const obj = { name: 'John', age: 30 } ; const proxy = new Proxy(obj, { get(target, property) { console.log(Чтение свойства ${property}); return target[property]; }, set(target, property, value) { console.log(Запись свойства ${property} со значением ${value}); target[property] = value; } }); console.log(proxy.name); // Вывод: Чтение свойства name, Значение: John proxy.age = 40; // Вывод: Запись свойства age со значением 40 console.log(proxy.age); // Вывод: Чтение свойства age, Значение: 40 console.log(obj.age); // Вывод: 40 (изменение значения age было отражено в оригинальном объекте) В этом примере мы создали объект obj и создали его обертку с помощью Proxy. Затем мы определили ловушки get и set для перехвата чтения и записи свойств объекта. Когда мы обращаемся к свойствам обернутого объекта через proxy, ловушки выполняются, и мы можем добавить дополнительную логику перед выполнением операций.
507
14
Задача Создайте функцию, которая принимает строку из букв и пробелов. Верните букву, справа и слева от которой наибольшее число пробелов. Примеры: "a b c" --> ["b"] "a bcs d k" --> ["d"] " a b sc p t k" --> ["p"] "a b c de" --> ["b", "c"] " a b c de " --> ["b"] "abc" --> ["a", "b", "c"] Ответы пишите в комментах 🙂
653
15
没有文字...
868
16
Преобразовываем объект в массив Есть объект: const person = { firstName: 'John', lastName: 'Doe' } Нужно чтобы этот объект, как то магическим образом стал массивом 🙂 Пишем функцию: function objectToArray(obj) { return Object.entries(obj) } Вызываем функцию: const personArray = objectToArray(person)
571
17
Кто хочет решить задачку? 😁 Функция принимает строку и возвращает строку в другом виде accum("abcd") -> "A-Bb-Ccc-Dddd" accum("RqaEzty") -> "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy" accum("cwAt") -> "C-Ww-Aaa-Tttt"
562
18
Пришла в голову идея 🙂 Давайте с вами сегодня разберем три способа, для проверки, является ли переменная числом: 1 способ function isNumber(param) { return Number.isFinite(param); } 2 способ function isNumber(param) { return !isNaN(param); } 3 способ function isNumber(param) { return typeof param === "number"; }
594
19
Задача Изограмма - это слово, в котором нет повторяющихся букв, как последовательных, так и непоследовательных. Реализуйте функцию, определяющую, является ли строка, содержащая только буквы, изограммой. Предположим, что пустая строка является изограммой. Игнорировать регистр букв. isIsogram "Dermatoglyphics" = true isIsogram "moose" = false isIsogram "aba" = false
735