Javascript
18.6K subscribers
806 photos
117 videos
2 files
1.25K links
По всем вопросам - @workakkk

@itchannels_telegram -🔥лучшие ИТ-каналы

@ai_machinelearning_big_data - машинное обучение

@JavaScript_testit- js тесты

@pythonl - 🐍

@ArtificialIntelligencedl - AI

@datascienceiot - ml 📚

РКН: № 5153160945
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Newton's Light Bulbs - изящная анимация лампочки Ньютона. Реализована с помощью CSS и Js.

https://codepen.io/jh3y/pen/abzeaWJ

@javascriptv
👍62👎2🔥2
⚡️Маст-хэв список программистов, каналы с последними книжными новинками, библиотеками, разбором кода и актуальной информацией, связанной с вашим языком программирования.
Лучший способ получать свежие обновлении и следить за трендами в разработке.

Python: t.me/pythonl
C#: t.me/csharp_ci
C/C++/ t.me/cpluspluc
Машинное обучение: t.me/ai_machinelearning_big_data
Data Science: t.me/data_analysis_ml
Devops: t.me/devOPSitsec
Go: t.me/Golang_google
Базы данных: t.me/sqlhub
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Хакинг: t.me/linuxkalii
Java: t.me/javatg

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy

🎞 YouTube канал: https://www.youtube.com/@uproger

😆ИТ-Мемы: t.me/memes_prog

🇬🇧Английский: t.me/english_forprogrammers
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
✔️ Literally Linked Lists - крутые интерактивные связанные списки, написанные с помощью CSS и JavaScript

https://codepen.io/mattjuggins/pen/KKZRwVL/

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Expanding Button - красивая анимированная кнопка с различными ссылками на медиа. Реализована с помощью SCSS, Pug и JavaScript.

https://codepen.io/abh1nash/pen/eYjQgEN

@javascriptv
👍113🔥2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Интересное исследование производительности анимации на основе скролла страницы

Анимация на основе скролла — это способ добавить интерактивности и визуального интереса вашему сайту или веб-приложению, который запускается в зависимости от положения прокрутки пользователя. Это отличный способ удержать пользователей и сделать сайт более привлекательным.

В этой статье новый подход сравнивается с классической техникой JavaScript, чтобы показать, насколько простой и плавной может быть анимация с помощью нового API.

#javascript #api #css #web

@javascriptv
👍10🔥31
UptimeSystem — мониторинг доступности веб-сайтов и серверов

UptimeSystem позволяет с лёгкостью отслеживать доступность ваших веб-сайтов, серверов и портов, а также контролировать выполнение ваших Cron-заданий

При этом вы можете получить мгновенные email-уведомления при изменении состояния отслеживаемых сервисов

Стоимость: #бесплатно (но есть платные тарифы)

@javascriptv
7👍5🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 CSS Dots wave - анимированная сцена, выполненная с помощью SCSS, без использования JavaScript

https://codepen.io/amit_sheen/pen/vYpZBwP

@javascriptv
🔥17👍32
This media is not supported in your browser
VIEW IN TELEGRAM
About Us Pop-Out Effect - крутые виджеты для блока "О нас" с поп-ап жффектом.

https://codepen.io/ainalem/pen/QWGNzYm

@javascriptv
👍10🔥52
Как сделать кастомный Semi Donut Chart с помощью SVG

Semi Donut Chart — это одна из форм представления отчётов в виде полукруглой диаграммы. Semi Donut Chart в том случае, когда важна не математическая точность, а наглядность.

Если вы хотите сделать интересный Semi Donut Chart без использования библиотек по типу Chart.js, то этот туториал для вас.

@javascriptv
👍7🔥31
This media is not supported in your browser
VIEW IN TELEGRAM
Holiday Feature Folding Cards [Pure CSS] - красивая анимация карточек с дополнительной информацией.

https://codepen.io/Maza-designDev/pen/KKdmyGb

@javascriptv
🔥143👍2
⭐️CSS Diner

Интерактивная игра для прокачки и закрепления знаний о селекторах CSS. В игре даётся анимированная полка блюд, HTML форма и определённый элемент или элементы, которые надо выбрать.

https://flukeout.github.io/

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍7🔥3
🧑‍💻Техника каррирования в JavaScript: суть, преимущества, примеры

Каррирование — это техника, применяемая в функциональном программировании. Она позволяет преобразовать функцию с несколькими аргументами в последовательность функций, каждая из которых принимает один аргумент за раз.

Начнем с базового примера.

Рассмотрим функцию add, принимающую 2 аргумента и возвращающую их сумму:
function add(x, y) {
return x + y;
}

console.log(add(3, 4)); // Вывод: 7


Функция add принимает 2 аргумента, x и y, и возвращает их сумму. Теперь выполним каррирование данной функции. Для этого воспользуемся техникой частичного применения:
function add(x) {
return function(y) {
return x + y;
};
}

console.log(add(3)(4)); // Вывод: 7


В варианте с каррированием функция add принимает один аргумент x и возвращает другую функцию, которая принимает второй аргумент y, после чего выполняет сложение. Это позволяет вызвать add(3) и получить новую функцию, которую можно вызвать с оставшимся аргументом 4.

Каррирование обеспечивает ряд преимуществ.
Во-первых, оно позволяет создавать специализированные функции из более общих. Создадим переиспользуемую функцию addOne путем частичного применения функции add:
const addOne = add(1);
console.log(addOne(5)); // Вывод: 6
console.log(addOne(10)); // Вывод: 11


В примере addOne  — это новая функция, производная от add, которая всегда прибавляет 1 к своему аргументу. Эту функцию можно повсеместно переиспользовать в базе кода без дублирования логики.

Во-вторых, каррирование делает возможным создание функций высшего порядка, улучшающих компонуемость. Рассмотрим функцию multiply, принимающую 3 аргумента и возвращающую их произведение:
function multiply(x, y, z) {
return x * y * z;
}

console.log(multiply(2, 3, 4)); // Вывод: 24


Выполняем каррирование функции multiply:
function multiply(x) {
return function(y) {
return function(z) {
return x * y * z;
};
};
}

console.log(multiply(2)(3)(4)); // Вывод: 24


Вариант с каррированием позволяет связать вызовы функций в цепочку, передавая по одному аргументу за раз. Это прием улучшает читаемость кода и упрощает композицию функций:
const multiplyByTwo = multiply(2);
const multiplyByThree = multiplyByTwo(3);

console.log(multiplyByThree(4)); // Вывод: 24
console.log(multiply(2)(3)(4)); // Вывод: 24


В-третьих, каррирование способствует созданию более гибких функций. Создадим вариации функции, частично применив несколько аргументов и позднее предоставив другие:

Продолжение

@javascriptv
👍232👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Создайте крутой проект для портфолио

В рамках этого видео вы поработаете с вёрсткой и JavaScript, познакомитесь с различными библиотеками и научитесь динамически комбинировать различные элементы.

По итогу вы получите клон действующего сервиса по выбору цветов:

https://www.youtube.com/watch?v=OaNICHKM5KM

#javascript #туториал

@javascriptv
👍142🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ Tiling SVG Animation - красивая анимация состава разных кофейных напитков. Реализована с помощью CSS и JS.

https://codepen.io/RominaMartin/pen/KKgQmEW

@javascriptv
👍18🔥72
⭐️ Обзор 10 приемов JavaScript для эффективного программирования

1. Объект Intl
Объект Intl позволяет форматировать числа, даты и валюту с учетом разных локалей и параметров.

Он предоставляется с множеством свойств, которые обеспечивают быстрое и безупречное форматирование данных.

Рассмотрим пример форматирования валюты:
let num = 100;

let RupeeFormatter = new Intl.NumberFormat("en-IN",
{style: "currency", currency: "INR"})

let RupeeFormatted = RupeeFormatter.format(num);

console.log(RupeeFormatted)
//
100

let USDFormatter = new Intl.NumberFormat("en-IN",
{style: "currency", currency: "USD"})

let USDFormatted = USDFormatter.format(num)

console.log(USDFormatted)
// $100


2. Оператор ??
Оператор ?? присваивает переменной значение по умолчанию, если она null или undefined.

Используйте данный оператор, если сомневаетесь в существовании у объекта того или иного свойства. Если свойство отсутствует, переменной присваивается значение по умолчанию.

Пример:
let user = {}

let name = user.name ?? "Anonymous"

console.log(name)
// "Anonymous"


3. Object.fromEntries()
Метод Object.fromEntries() преобразует массив пар “ключ-значение” в объект.

Возьмем следующий массив и создадим из него объект, как показано ниже:
let arr = [["name", "Alice"], ["age", 25]]

let obj = Object.fromEntries(arr);

console.log(obj)
// {name: "Alice", age: 25}


4. Array.flat()
Метод Array.flat() преобразует вложенный массив в один единственный.

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

Пример:
let arr = [1, [2, [3, [4]]]];

let flat = arr.flat(Infinity)

console.log(flat)
// [1, 2, 3, 4]


5. Оператор ?
Оператор ?. обеспечивает доступ к свойствам объекта без проверки, является ли он null или undefined.

Используйте его, когда не знаете, существует ли объект или нет.

Пример:
let user = null

let age = user?.age

console.log(age)
// undefined


6. Array.reduce()
Метод Array.reduce() применяет функцию к каждому элементу массива и суммирует результат в одно значение.

Пример сложения всех чисел массива:
let arr = [1, 2, 3, 4, 5]

let sum = arr.reduce((a, b) => a + b)

console.log(sum)
// 15


7. String.repeat()
Метод String.repeat() создает новую строку, повторяя заданную строку указанное количество раз.

Пример:
let str = "js".repeat(10)

console.log(str)
// 'jsjsjsjsjsjsjsjsjsjs'


8. Array.from()
Метод Array.from() создает новый массив из массивоподобного или итерируемого объекта.

Пример:
let str = "Hello"

let arr = Array.from(str)

console.log(arr)
// ["H", "e", "l", "l", "o"]


9. Math.hypot()
Метод Math.hypot() находит квадратный корень из суммы квадратов его аргументов.

Так, сумма квадратов 3 и 4 равна 25, а квадратный корень из 25 равен 5. Следовательно, Math.hypot(3, 4) возвращает 5.

Пример:
let hyp = Math.hypot(3, 4);

console.log(hyp)
// 5


10. Object.assign()
Метод Object.assign() копирует значения всех перечисляемых собственных свойств из одного или нескольких исходных объектов в целевой объект.

Пример:
let obj1 = {a: 1, b: 2};

let obj2 = {c: 3, d: 4};

let obj3 = Object.assign(obj1, obj2)

console.log(obj3)
// {a: 1, b: 2, c: 3, d: 4}


@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4011🔥7👎1
🔥 Дайджест полезных материалов из мира : Javascript за неделю

Почитать:
Под капотом анимаций в React Native. Часть 2/2: Reanimated and JSI
Подборка VS Code-плагинов для Frontend-разработчиков и не только
Рефлексия в JavaScript и TypeScript: обзор основных техник. Как сгенерировать CLI-интерфейс для класса
Считаем «a=1; b=2; x=pi/3; abcos(x)»
JavaScript повсюду или почему веб-технологии захватили мир
DOM, DI и View: деревья в Angular
Как уменьшали размер VS Code, используя name mangling — сокращение идентификаторов во время сборки
Как показать миллион зданий на карте — и не сломать браузер
Одно PWA, чтоб править всеми
Как запретить разработчику делать не то что нужно?
Introduction to Sets in JavaScript: A Comprehensive Guide
Pune Escorts Services: Exploring a World of Connection and Luxury
Cortexi Reviews 2023 - Ear Drops, Ingredients, Reviews, Benefits & Price?
Latest Newsletter: Bingeing the Past and Building the Future (Issue #129)
Web Application Debugging with Sentry Session Replay: Comprehensive Walkthrough 🚀🚀
Elevate Your Buttons with CopyShareify-js: Copy, Share, and More!
The Art of Earning with Amazon's Affiliate Program
Introducing OTP Designer jQuery Plugin
EasyCaptchaJS: Simplified reCAPTCHA Integration
SysCorp Technology PVT LTD

Посмотреть:
🌐 NEW Way To Create Variables In JavaScript ( 12:13)
🌐 Help Me Teach You TypeScript ( 00:45)

Хорошего дня!

@javascriptv
👍14🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
Glassmorphing card - Карточка в стиле стекломорфизма с плавным 3D-наклоном при наведении, созданная с помощью библиотеки Tilt.js.

https://codepen.io/pieter-biesemans/pen/QWKmXEE

@javascriptv
👍153🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Video Sharing Platform UI

Пользовательский интерфейс платформы обмена видео, реализован с помощью CSS и JS

#анимация #css

https://codepen.io/TurkAysenur/pen/abvrNgx

@javascriptv
👍102🔥2
💬 10 ключевых концепций JavaScript

1. Замыкания
▪️Замыкания обычно используются в JavaScript для создания частных переменных и инкапсуляции. Определяя переменные во внешней функции и возвращая внутреннюю функцию, которая обращается к этим переменным и изменяет их, можно контролировать видимость и манипуляции с данными. Это позволяет добиться сокрытия информации и избежать загрязнения глобального пространства имен.

▪️Когда outerFunction вызывается и присваивается замыканию, создается замыкание, которое сохраняет ссылку на outerVariable. В дальнейшем при вызове замыкания оно будет иметь доступ к outerVariable и может регистрировать ее значение.

▪️Замыкания часто используются в таких сценариях, как обработчики событий, обратные вызовы и поддержание состояния в функциональном программировании. Они обеспечивают создание постоянных ссылок на переменные и позволяют использовать эффективные и гибкие методы программирования в JavaScript.

2. Промисы
▪️Промис представляет собой конечный результат асинхронной операции, который может быть либо разрешенным значением, либо причиной отказа. Промис бывает в трех состояниях: ожидающий, выполненный, отклоненный.

▪️Для создания промиса используется конструктор Promise, который принимает функцию обратного вызова с двумя параметрами: resolve и reject. Внутри этого обратного вызова выполняется асинхронная задача с вызовом либо resolve(value) для выполнения промиса со значением, либо reject(reason) для отклонения его с указанием причины (обычно это объект error).

▪️Метод then() используется для обработки выполнения промиса. Он принимает функцию обратного вызова, которая получает разрешенное значение в качестве аргумента. Можно объединить несколько вызовов then() в цепочку для выполнения последовательных операций или преобразований разрешенного значения.

▪️Метод catch() используется для обработки отказа от выполнения промиса. В качестве аргумента он принимает функцию обратного вызова, которая получает причину отказа (ошибку). Обычно он используется в конце цепочки промисов для обработки ошибок, возникших во время асинхронной операции.

▪️Промисы также предоставляют дополнительные методы, такие как finally(), позволяющий указать обратный вызов, который будет вызван независимо от того, выполнен промис или отклонен, и Promise.all(), который можно использовать для ожидания выполнения нескольких промисов.

3. Прототипы и прототипное наследование
▪️Прототип — это объект, от которого другие объекты наследуют свойства и методы. При обращении к свойству или методу объекта JavaScript сначала проверяет, есть ли это свойство у самого объекта. Если нет, он просматривает цепочку прототипов в поисках прототипа объекта, затем прототипа прототипа и так далее, пока не найдет свойство или не достигнет конца цепочки.

В этой программе используются функции-конструкторы Animal и Dog.

▪️Функция-конструктор Animal принимает параметр name и присваивает его свойству name вновь создаваемого объекта с помощью this.name.

▪️Добавляем метод greet в Animal.prototype, который будет общим для всех экземпляров, созданных с помощью функции-конструктора Animal.

▪️Функция-конструктор Dog расширяет Animal с помощью Animal.call(this, name) для наследования свойств от конструктора Animal.

▪️Образуем цепочку прототипов, создав новый объект с помощью Object.create(Animal.prototype) и присвоив его Dog.prototype. Это связывает прототип экземпляров Dog с Animal.prototype, обеспечивая наследование.

▪️Добавляем в Dog.prototype метод bark, который предназначен для экземпляров, созданных с помощью конструктора Dog.

▪️Создаем экземпляры Animal и Dog с помощью ключевого слова new. Экземпляр animal использует метод greet, унаследованный от Animal.prototype, а экземпляр dog использует как метод greet, унаследованный от Animal.prototype, так и метод bark, определенный в Dog.prototype.

📌Читать

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍6👎1🔥1
👍83🔥2