String.fromCharCode()
возвращает строку, созданную из указанной последовательности значений единиц кода UTF-16.Синтаксис
String.fromCharCode(num1[, ...[, numN]]
num1, ..., numN
— Последовательность чисел, являющихся значениями единиц кода UTF-16. Диапазон составляет от 0 до 65535 (0xFFFF). Числа больше 0xFFFF усекаются. Проверка достоверности не производится.
Метод
String.fromCharCode()
возвращает примитивную строку, а не объект String
.Поскольку метод
fromCharCode()
является статическим методом объекта String
, вы всегда должны использовать его как String.fromCharCode()
, а не как метод созданного вами экземпляра String
.fromCharCode()
. String.fromCharCode(65, 66, 67); // "ABC"
Хотя большинство распространённых значений Юникода может быть представлено одним 16-битным числом (как ожидалось на ранней стадии стандартизации JavaScript) и метод
fromCharCode()
может использоваться для возврата одного символа для самых распространённых значений (точнее, значений UCS-2, которые являются подмножеством самых распространённых символов UTF-16), для работы со всеми допустимыми значениями Юникода (занимающими до 21 бита) одного метода fromCharCode()
недостаточно. Поскольку большие кодовые точки используют (самое меньшее) два «суррогатных» числа для представления одного символа, для возврата таких пар можно использовать метод String.fromCodePoint()
(являющийся частью черновика ES6) и, таким образом, адекватно представлять эти символы.@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4😁1🎉1
const isRelative = (path) => !/^([a-z]+:)?[\\/]/i.test(path);
isRelative('/foo/bar/baz'); // false
isRelative('C:\\foo\\bar\\baz'); // false
isRelative('foo/bar/baz.txt'); // true
isRelative('foo.md'); // true
const isHexColor = (color) => /^#([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i.test(color);
isHexColor('#012'); // true
isHexColor('#A1B2C3'); // true
isHexColor('012'); // false
isHexColor('#GHIJKL'); // false
const diffDays = (date, otherDate) => Math.ceil(Math.abs(date - otherDate) / (1000 * 60 * 60 * 24));
diffDays(new Date('2014-12-19'), new Date('2020-01-01')); // 1839
const copyToClipboard = (text) => navigator.clipboard.writeText(text);
copyToClipboard("Hello World");
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤3🔥3👎2
О чём говорится в статье:
vh
, vw
, vmin
и vmax
.svh
и svw
.nth-child
позволяет выбирать дочерние элементы по порядковому номеру и добавлять класс элемента.@scope
позволяет создавать пространства имён и задавать стили с ограниченной областью видимости.Enjoy)
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍7❤1
Функция высшего порядка — это просто функция, которая либо принимает одну или несколько функций в качестве аргументов, либо возвращает функцию в качестве результата. В этой статье мы рассмотрим, что такое функции высшего порядка, почему они полезны и как использовать их в своём коде.
Абстрагируясь от общих шаблонов и операций, функции высшего порядка облегчают написание чистого и многократно используемого кода.
Функции высшего порядка полезны по нескольким причинам:
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍8🥰1👏1
Хорошая статья, описывающая, как JavaScript работает под капотом. Описывается, как во всём этом процессе участвует куча, стек вызовов, цикл событий и т.д.
Особенно это актуально освежить перед собеседованием, скорее всего пригодится.
Некоторые факты из статьи:
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤2🔥1
🔥 Monolith - это инструмент CLI для сохранения полных веб-страниц в виде отдельных HTML-файлов. Он объединяет все ресурсы в один файл, обеспечивая автономный доступ и простое архивирование.
▪ Github
@javascriptv
▪ Github
@javascriptv
👍12🔥4❤1
План статьи
Понимание инструментов
Добавление файлов конфигурации
—
package.json
—
"type": "module"
в package.json
— Зависимости
— Конфигурация TypeScript
—
.gitignore
— Каталог
src
Добавление скриптов
— Скрипт
build
— Скрипт
start
— Скрипт
dev
——
tsc --watch
——
node --watch
——
run "/dev:/"
@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥2
Объект 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