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

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

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

@JavaScript_testit- js тесты

@pythonl - 🐍

@ArtificialIntelligencedl - AI

@datascienceiot - ml 📚

РКН: № 5153160945
Download Telegram
Объект URL в JavaScript: полный разбор

Итак, создать объект URL можно 2 способами:

— Конструктор URL():
const url = new URL("https://www.example.com/path?query=123#hash");


— Использование window.location:
const currentUrl = new URL(window.location.href);



Из чего состоит URL
Вот некоторые составляющие URL :
href: полный URL.
protocol: протокол, например https:.
host: хост (доменное имя и порт).
hostname: только доменное имя.
port: только порт.
pathname: путь после доменного имени и порта.
search: строка запроса, начинающаяся с ?.
hash: якорь, начинающийся с #.
origin: протокол + домен + порт.

Допустим, у нас есть такой URL, включающий все эти части:
https://www.example.com:8080/path/page.html?query=123#section


Тогда объект URL для него будет выглядеть так:
const url = new URL("https://www.example.com:8080/path/page.html?query=123#section");


А если мы попытаемся вывести значения разных свойств, получим следующее:
console.log(url.href);     // https://www.example.com:8080/path/page.html?query=123#section
console.log(url.protocol); // https:
console.log(url.host); // www.example.com:8080
console.log(url.hostname); // www.example.com
console.log(url.port); // 8080
console.log(url.pathname); // /path/page.html
console.log(url.search); // ?query=123
console.log(url.hash); // #section
console.log(url.origin); // https://www.example.com:8080


Ещё вы можете изменить любую часть URL, изменяя соответствующее свойство.
url.search = "?newquery=456";
console.log(url.href);
// https://www.example.com:8080/path/page.html?newquery=456#section


Объект URLSearchParams в сочетании с объектом URL упрощает работу с параметрами запроса.
const params = new URLSearchParams(url.search);
params.set("newparam", "value");
url.search = params.toString();
console.log(url.href);
// https://www.example.com:8080/path/page.html?newquery=456&newparam=value


@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍246🔥3
🖥 Сравнение Bun.js и Node.js

Держите полезную статью, в которой сравнивается Bun.js и Node.js
А перед этим давайте немного поговорим о Bun.js

Вот основные преимущества Bun.js:
— Почти полная совместимость с Node.js/Deno.
— В десятки раз быстрее Node.js и Deno.
— Нативная поддержка JavaScript.
— Богатый набор встроенных Web API.
— Самый эффективный менеджер пакетов.
— Встроенный dev-сервер.
— Встроенный раннер тестов.
— Встроенный бандлер.
— Возможность почти моментального перехода с Node на Bun.

Откуда такая скорость? В первую очередь это современные технологии и тонны большого труда при профилировке и оптимизации.

За счет чего достигается эффект Blazingly Fast, которым так известен Bun.js сегодня?
— Bun написан на языке Zig. Это альтернатива C++ и Rust. Zig предоставляет низкоуровневые возможности для ручной работы с памятью, за счет чего появляется возможность оптимизировать вообще все элементы платформы. К слову, это и было сделано: более 80% составных частей Bun, которые так или иначе уже были реализованы в Node, были переписаны на Zig с максимальной оптимизацией обращений к памяти.

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

📎 Статья

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍5👎21👏1😁1
🖥 Хорошо ли ты знаешь JavaScript? Проверь себя

Кто-то думает, что JavaScript — это простой язык для несложных скриптов на странице. Но на самом деле современный JS умеет куда больше, чем это было раньше.
Проверь себя, насколько ты знаешь возможности JavaScript.

📎 Ссылка на тест

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7👎3👏3🔥2
🖥 Асинхронность в JS

Хорошая статья о том, как реализована асинхронность в JavaScript, когда и для чего её использовать

Содержание статьи:
Синхронный код и его проблемы
Асинхронный код
Стек вызовов
Цикл событий
Колбэки
Промисы (Promise)
Асинхронные функции
— Связка async/await
— Плюсы async/await

Пару фактов из статьи:
Асинхронный код включает функции обратного вызова (колбэки), которые вызываются в ответ на события.

Ад колбэков — проблема, связанная с использованием большого количества обратных вызовов в асинхронном коде.

Промисы — объект-обёртка для асинхронного кода, который содержит состояние и работает аналогично колбэкам.

Асинхронные функции — функции, которые возвращают промисы и могут быть вызваны с помощью ключевого слова await.

Связка async/await позволяет писать более чистый и короткий код, а также обрабатывать ошибки с try-catch.

В Node.js и некоторых браузерах есть setImmediate(), который выполняет почти то же, что и setTimeout() с нулевым таймером.

Promise.all() и Promise.race() используются для ожидания выполнения всех запросов или ожидания выполнения первого запроса из списка.

Для обхода асинхронных итерируемых сущностей можно использовать for await...of.

📎 Статья

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍165🔥2👏2
🚀 fetch-event-stream` 🥳

Крошечная утилита (745b) для обработки событий, отправляемых сервером через API "fetch" и/или WebStreams

🔹 Поддерживает все среды выполнения JS
🔸 Позволяет использовать WebWorker / ServiceWorker
🔹 Принимает AbortController для потоков, которые можно отменить

GitHub: https://github.com/lukeed/fetch-event-stream

@javascriptv
👍143🔥3
🖥 Какие темы освещаются в статье?

Вы же знаете про HTMX?
HTMX — это небольшая, свободная от зависимостей библиотека JavaScript, позволяющая создавать передовые пользовательские интерфейсы с лёгкостью языка разметки. Она предоставляет доступ к AJAX, CSS Transitions, WebSockets и Server Sent Events напрямую в HTML с помощью атрибутов. Это стало переломным моментом для разработчиков, поскольку позволяет им добиться интерактивности (которую даёт JS), но непосредственно из HTML разметки.

И вот как раз о HTMX и идёт речь в этой статье

Вот темы, которые освещаются:
• Установка HTMX
• Ajax-запросы с помощью HTMX
• Триггер запроса
• Модификаторы триггеров
• Фильтры триггеров
• Логирование и события в HTMX
• и ещё много всего

📎 Статья

P.S: Как думаете, какие перспективы у этой технологии? Из каких сфер HTMX может полностью вытеснить JS?

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 DOM3D.js

Кодеры, ловите абсолютно безумный проект: разработчик написал инструмент для просмотра HTML/DOM, который позволяет оценить ваш сайт в 3D.

🖥 GitHub

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🔥17🎉3🤩32🤯2
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍9🔥3😁1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Совсем недавно был выпущен бенчмарк Speedometer 3.0 от Mozilla, Google, Microsoft и Apple для измерения скорости отклика веб-приложений.

Speedometer 3.0, созданный совместными усилиями разработчиков из Mozilla, Google, Microsoft и Apple, представляет собой инструмент для оценки скорости отклика веб-приложений в различных браузерах. В новой версии Speedometer 3.0 были использованы новейшие версии фреймворков Angular, Backbone, jQuery, Lit, Preact, React, React+Redux, Svelte и Vue. Также были применены современные шаблоны проектирования сайтов и веб-приложений, такие как Webpack, Web Components и новые методы работы с DOM.

В бенчмарк добавлены тесты для оценки производительности отрисовки при помощи элемента Canvas, генерации SVG, обработки сложных CSS, работы с очень большими деревьями DOM, а также использования методов, применяемых при редактировании контента в режиме WYSIWYG и работе с новостными сайтами.

Github

@javascriptv
👍17🔥21
🖥 Microsoft представила инструмент для веб-разработки Babylon.js 7.0 с новыми опциями процедурной геометрии

Microsoft представила инструмент для веб-разработки Babylon.js 7.0 с новыми опциями процедурной геометрии для создания сложных веб-игр.

В своем блоге Microsoft объявила, что одним из крупнейших нововведений Babylon.js 7.0 является поддержка процедурной геометрии (Procedural Geometry) под названием Node Geometry, которая должна помочь создавать сложные игровые миры без необходимости создания огромных файлов для 3D-иллюстрации игры. Microsoft заявила, что эта опция позволяет локальному ПК создавать сложный графический контент.

Microsoft открыла доступ к описанию Node Geometry Editor, демо работы Node Geometry и инструментарию новой опции.

Пользователи, которые пытаются загрузить и поиграть в веб-игру с поддержкой Node Geometry, могут просто «загрузить данные Node Geometry объемом в несколько КБ и позволить своему собственному ПК или мобильному устройству создать геометрию». Очевидно, это означает более быструю загрузку сложной веб-игры и повышение общей производительности проекта.

В Babylon.js 7.0 добавлена ещё одна опция, которая широко распространена в стандартных компьютерных и консольных играх. Это поддержка физики рэгдолла (Ragdoll Physics) для анимации тела персонажей. Microsoft заявляет, что эта опция позволит «любому скелетному ассету проявлять значительные изменения одним нажатием кнопки».

📎 Подробнее

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍74