WebCraft - ремесло веб разработки
6.47K subscribers
1.72K photos
258 videos
2 files
231 links
Интересуешься php , js , css , html , Laravel , Vue ? Этот канал для тебя

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Менеджер по рекламе: @Spiral_Yuri

Купить рекламу: https://telega.in/c/web_craft
Download Telegram
Функция для форматирования списков

Какая функция используется для форматирования списков в JavaScript с учетом локалей?

Если забыли, то вернитесь к посту от 10.09.2024.

👉 @web_craft | #frontend
Защита объекта от изменений

В JavaScript объекты являются изменяемыми структурами данных, что означает, что их свойства можно изменять после создания объекта. Однако иногда требуется защитить объект от изменений, чтобы сохранить его состояние неизменным. Для этого в JavaScript используется метод Object.freeze().

Метод Object.freeze() используется для замораживания объекта, что делает его свойства неизменяемыми. После замораживания объекта невозможно добавлять новые свойства, изменять существующие или удалять их.

Пример:
const obj = {
prop1: 42,
prop2: 'замороженный объект'
};

Object.freeze(obj);

// Попытка изменения свойства
obj.prop1 = 100; // Не сработает, obj.prop1 останется равным 42

// Попытка добавления нового свойства
obj.prop3 = true; // Не сработает, так как объект замороженный

// Попытка удаления свойства
delete obj.prop2; // Не сработает, prop2 останется в объекте

console.log(obj); // { prop1: 42, prop2: 'замороженный объект' }

👉 @web_craft | #frontend
Сортировочные алгоритмы на JavaScript

Статья описывает различные алгоритмы сортировки, которые можно реализовать на JavaScript. Она рассматривает примеры кода для каждого алгоритма, а также их характеристики, включая временную сложность и производительность. Цель статьи — помочь лучше понять, как работают эти алгоритмы и как их можно использовать в реальных приложениях на JavaScript.

👉 @web_craft | #frontend
This media is not supported in your browser
VIEW IN TELEGRAM
Retro Slot Machine

Интерактивный ретро автомат для игры в слоты на HTML, CSS, and JavaScript.

👉 @web_craft | #frontend
Использование метода Object.seal()

Что делает метод Object.seal() в JavaScript?

Забыли? Вернитесь к посту от 16.09.2024.

👉 @web_craft | #frontend
Точное сравнение значений в JavaScript

Метод Object.is() в JavaScript используется для точного сравнения двух значений. В отличие от строгого равенства (===), он корректно различает такие значения, как NaN и 0/-0, а также объекты, сравнивая их ссылки.

Представим форму регистрации пользователя, где при изменении данных нужно проверить, было ли фактически изменено состояние формы для предотвращения повторной отправки.
let initialFormState = { username: 'user123', email: 'user@example.com' };
let currentFormState = initialFormState;

function updateEmail(newEmail) {
currentFormState = { ...currentFormState, email: newEmail };
}

console.log(Object.is(initialFormState, currentFormState)); // false

В этом примере после изменения email, хотя остальные поля формы не изменились, Object.is() вернет false, так как изменилось состояние объекта (его ссылка). Это поможет эффективно отслеживать изменения состояния формы и предотвратить повторную отправку формы.

👉 @web_craft | #frontend
Промисы с нуля

Статья объясняет, как работают промисы в JavaScript, начиная с основ. Автор рассказывает, почему промисы важны для работы с асинхронным кодом, и сравнивает их с колбэками. Описаны создание промисов, их цепочка, обработка ошибок, а также использование async/await для упрощения работы с асинхронностью. Статья включает практические примеры и решает проблему "Callback Hell".

👉 @web_craft | #frontend
This media is not supported in your browser
VIEW IN TELEGRAM
CSS-only game: find 10 differences

Игра с поиском отличий на CSS.

👉 @web_craft | #frontend
Работа с Symbol.species

Как Symbol.species влияет на методы класса-наследника?

Если забыли, то вернитесь к посту от 24.09.2024.

👉 @web_craft | #frontend
Оптимизация объектов с помощью Object.preventExtensions()

Метод Object.preventExtensions(obj) запрещает добавление новых свойств в объект obj.

Пример:
const config = { apiEndpoint: '/api', timeout: 5000 };
Object.preventExtensions(config);

// Попытка добавить новое свойство
config.retryAttempts = 3; // Не будет добавлено

console.log(config.retryAttempts); // undefined

При создании объектов настроек, где важно сохранить неизменяемую структуру, можно использовать функцию:
function createImmutableConfig(options) {
const config = { ...options };
Object.preventExtensions(config);
return config;
}

const appConfig = createImmutableConfig({ debug: true, version: '1.0.0' });

appConfig.newFeature = true; // Не будет добавлено
console.log(appConfig); // { debug: true, version: '1.0.0' }

Это гарантирует, что конфигурация приложения останется предсказуемой и защитит от случайного добавления лишних свойств.

👉 @web_craft | #frontend