Объект URL в JavaScript: полный разбор
⏩ Итак, создать объект
— Конструктор
— Использование
⏩ Из чего состоит URL
Вот некоторые составляющие URL :
—
—
—
—
—
—
—
—
—
⏩ Допустим, у нас есть такой URL, включающий все эти части:
⏩ Тогда объект URL для него будет выглядеть так:
⏩ А если мы попытаемся вывести значения разных свойств, получим следующее:
⏩ Ещё вы можете изменить любую часть URL, изменяя соответствующее свойство.
⏩ Объект
@javascriptv
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 :
—
href
: полный URL.—
protocol
: протокол, например https:
.—
host
: хост (доменное имя и порт).—
hostname
: только доменное имя.—
port
: только порт.—
pathname
: путь после доменного имени и порта.—
search
: строка запроса, начинающаяся с ?
.—
hash
: якорь, начинающийся с #
.—
origin
: протокол + домен + порт.https://www.example.com:8080/path/page.html?query=123#section
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.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
👍24❤6🔥3
Держите полезную статью, в которой сравнивается Bun.js и Node.js
А перед этим давайте немного поговорим о Bun.js
— Почти полная совместимость с Node.js/Deno.
— В десятки раз быстрее Node.js и Deno.
— Нативная поддержка JavaScript.
— Богатый набор встроенных Web API.
— Самый эффективный менеджер пакетов.
— Встроенный dev-сервер.
— Встроенный раннер тестов.
— Встроенный бандлер.
— Возможность почти моментального перехода с Node на Bun.
— 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👎2❤1👏1😁1
Кто-то думает, что 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
Хорошая статья о том, как реализована асинхронность в JavaScript, когда и для чего её использовать
Содержание статьи:
— Связка async/await
— Плюсы async/await
Пару фактов из статьи:
await
.async/await
позволяет писать более чистый и короткий код, а также обрабатывать ошибки с try-catch
.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
👍16❤5🔥2👏2
🚀 fetch-event-stream` 🥳
Крошечная утилита (745b) для обработки событий, отправляемых сервером через API "fetch" и/или WebStreams
🔹 Поддерживает все среды выполнения JS
🔸 Позволяет использовать WebWorker / ServiceWorker
🔹 Принимает AbortController для потоков, которые можно отменить
GitHub: https://github.com/lukeed/fetch-event-stream
@javascriptv
Крошечная утилита (745b) для обработки событий, отправляемых сервером через API "fetch" и/или WebStreams
🔹 Поддерживает все среды выполнения JS
🔸 Позволяет использовать WebWorker / ServiceWorker
🔹 Принимает AbortController для потоков, которые можно отменить
GitHub: https://github.com/lukeed/fetch-event-stream
@javascriptv
👍14❤3🔥3
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
👍13❤2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Кодеры, ловите абсолютно безумный проект: разработчик написал инструмент для просмотра HTML/DOM, который позволяет оценить ваш сайт в 3D.
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🔥17🎉3🤩3❤2🤯2
Отличный вариант вспомнить основы перед собеседованием, пользуйтесь)
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
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
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🔥2❤1
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍7❤4