Логово верстальщика – Telegram
Логово верстальщика
8.04K subscribers
996 photos
48 videos
4 files
1.71K links
Канал для верстальщиков с инфой о HTML и CSS, а так же JavaScript на уровне верстальщиков.

Канал на бирже - https://telega.in/c/webdevlair

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
📝 Подборка вакансий для сеньоров

Senior Frontend Developer (Vue/React)
HTML, SCSS, TailwindCSS, JavaScript, TypeScript, Node.js
от 200 000 ₽ | 3–6 лет

Frontend разработчик
React, JavaScript, TypeScript
Уровень дохода не указан | 3–6 лет

Frontend разработчик senior (тех.лид)
React, JavaScript, Next.js, HTML, CSS
Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Паттерны для эффективного манипулирования DOM с ванильным JavaScript

В руководстве рассматриваются такие шаблоны работы с DOM на JavaScript, как выбор правильного querySelector, кэширование элементов и улучшение обработки событий.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое Content Security Policy (CSP) и зачем она нужна?

Content Security Policy (CSP) — это механизм безопасности, ограничивающий источники загружаемого контента на веб-странице. CSP помогает предотвращать атаки XSS и другие угрозы, задавая правила через HTTP-заголовок или <meta>.

➡️ Пример:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; noscript-src 'self' https://apis.example.com;">
<noscript>Пример CSP</noscript>
</head>
<body>
<noscript src="https://apis.example.com/library.js"></noscript>
<noscript>
// Этот скрипт выполнится, так как он разрешен
console.log("Скрипт из разрешенного источника работает.");
</noscript>
<noscript>
// Этот скрипт нарушит политику CSP, так как он inline
alert("Inline скрипт заблокирован!");
</noscript>
</body>
</html>


🗣️ В этом примере политика CSP разрешает загрузку ресурсов только с того же домена ('self') и скриптов с определенного внешнего источника. Inline-скрипты и неразрешенные ресурсы будут заблокированы, повышая безопасность приложения.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Как найти утечки памяти на сайтах и в веб-приложениях

Утечки памяти мешают пользователям долго работать с вашим веб-приложением – из-за них можно потерять аудиторию. Попробуем разобраться как этого издежать.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как выбрать библиотеку для управления состоянием в Vue.js

Веб-разработка тесна связана с управлением состоянием, особенно если это касается сложных структур. Рассказываем, какие библиотеки помогут в этом и какие у них есть преимущества.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Используй «правило 80/20» для изучения технологий

Каждый раз, когда начинаешь изучать новый фреймворк или язык, кажется, что информации слишком много?

👉 Совет: сосредоточься на 20% самых часто используемых функций и принципов — они дадут 80% пользы. Изучи основные концепции, типичные паттерны и реальные кейсы. Остальное придёт с опытом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 PHP 8.4: Константа E_STRICT объявлена устаревшей

Поскольку все уведомления E_STRICT были преобразованы в E_NOTICE начиная с PHP 8.0, в PHP 8.4 константа E_STRICT объявлена устаревшей.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Тесты поддержки браузерами современных веб-функций на JavaScript

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Is a number prime?

Определите функцию, которая принимает целочисленный аргумент и возвращает логическое значение true или false в зависимости от того, является ли целое число простым.

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

Требования
• Вы можете предположить, что вам будет предоставлен целочисленный ввод.
• Вы не можете предполагать, что целое число будет только положительным. Вам • также могут быть даны отрицательные числа ( или 0 ).

Пример кода:

is_prime(1)  /* false */
is_prime(2) /* true */
is_prime(-1) /* false */


Решение задачи🔽

function isPrime(num) {
if (num <= 1) {
return false;
}

if (num === 2) {
return true; // 2 - единственное четное простое число
}

if (num % 2 === 0) {
return false; // исключаем все четные числа, кроме 2
}

// Проверка делимости от 3 до квадратного корня из num
for (let i = 3; i <= Math.sqrt(num); i += 2) {
if (num % i === 0) {
return false;
}
}

return true;
}

// Примеры использования
console.log(isPrime(1)); // false
console.log(isPrime(2)); // true
console.log(isPrime(-1)); // false
console.log(isPrime(17)); // true
console.log(isPrime(18)); // false
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 15 лучших редакторов XML для продуктивной разработки

XML – один из самых популярных расширяемых языков разметки. В небольшом обзоре рассказываем о редакторах, которые позволяют работать с ним наиболее эффективно.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Массив++

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

Массив не может быть пустым. Допускаются только неотрицательные однозначные целые числа. Возвращайте null для недопустимых входных данны

Пример кода:

upArray([2,3,9]) => [2,4,0]
upArray([4,3,2,5]) => [4,3,2,6]
upArray([1,-9]) => null


Решение задачи🔽

function upArray(arr) {
if (arr.length === 0 || arr.some(num => num < 0 || num > 9)) {
return null;
}

for (let i = arr.length - 1; i >= 0; i--) {
if (arr[i] < 9) {
arr[i]++;
return arr;
}
arr[i] = 0;
}

arr.unshift(1);
return arr;
}

// Примеры использования функции
console.log(upArray([2, 3, 9])); // => [2, 4, 0]
console.log(upArray([4, 3, 2, 5])); // => [4, 3, 2, 6]
console.log(upArray([1, -9])); // => null
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для джунов

Frontend-разработчик Junior/Middle
🟢JavaScript, React, TypeScript, Webpack, Docker
🟢от 80 000 до 120 000 ₽ | 1–3 года

Frontend developer (React)
🟢HTML, CSS, JavaScript, SASS, React
🟢от 60 000 до 80 000 ₽ | 1–3 года

Junior+ Fullstack разработчик
🟢JavaScript, Git, REST API, Битрикс24, PHP, Vue.js, API, Работа с базами данных, Адаптивная верстка, CSS, Node.js
🟢от 20 000 ₽ | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как создать компонент тегов с автозаполнением на React

В этом руководстве мы создадим компонент ввода тегов с автозаполнением, используя React JS без сторонних библиотек.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Обрабатываем ошибки в React: полное руководство

Независимо от уровня внимательности и количества написанных тестов всегда что-то может пойти не так. Рассмотрим обработку ошибок в React: что делать при их появлении, как их выявить и устранить.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Управление памятью JavaScript: как избежать утечек памяти и повысить производительность

Если вы разрабатывали приложения, то могли сталкиваться с такой проблемой, как утечка памяти. В сегодняшней статье мы расскажем об управлении памятью в JS и о том, как не допустить ее утечек.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 ISBN-10

Идентификаторы ISBN-10 состоят из десяти цифр. Первые девять символов - это цифры 0-9. Последняя цифра может быть от 0 до 9 или X, чтобы указать значение 10.

Номер ISBN-10 действителен, если остаток при делении суммы произведений цифр и их позиций на 11 равен 0.

Алгоритм:

ISBN: 1 1 1 2 2 2 3 3 3 9
Позиция: 1 2 3 4 5 6 7 8 9 10
Это действительный ISBN, потому что:
(1*1 + 1*2 + 1*3 + 2*4 + 2*5 + 2*6 + 3*7 + 3*8 + 3*9 + 9*10) % 11 = 0

Пример кода:

validISBN10("1112223339") => true
validISBN10("048665088X") => true
validISBN10("1234512345") => false
validISBN10("XXXXXXXXXX") => false
validISBN10("048665088XZ") => false


Решение задачи🔽

function validISBN10(isbn) {
if (isbn.length !== 10) {
return false;
}

let sum = 0;
for (let i = 0; i < 10; i++) {
let char = isbn[i];
let value;

if (i === 9 && char === 'X') {
value = 10;
} else if (char >= '0' && char <= '9') {
value = parseInt(char, 10);
} else {
return false;
}

sum += value * (i + 1);
}

return sum % 11 === 0;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Проблемы экспорта по умолчанию в модулях JavaScript

Модули JavaScript — способ организации кода в многократно используемые компоненты, используемые совместно в разных файлах и проектах. Модули можно импортировать и экспортировать с помощью двух различных методов: экспорта по умолчанию и именованного экспорта. Рассмотрим экспорт по умолчанию и причины, по которым следует избегать его использования в модулях JavaScript.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 BCMath: Новая функция bcdivmod

bcdivmod может быть использован в случаях, когда необходимо получить частное и остаток от деления, и избавляет от необходимости вызывать функции bcdiv и bcmod по отдельности.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM