Фронтенд Гайд
Kanalga Telegram’da o‘tish
Канал для фронтендеров, много полезных лайфхаков, фичей, макетов, тестов! Все представлено в виде готового кода, бери и юзай в своем проекте. 6ad1a2aabe82d4fbb0d6
Ko'proq ko'rsatish6 282
Obunachilar
Ma'lumot yo'q24 soatlar
-107 kunlar
-6730 kunlar
Postlar arxiv
6 283
HTML. С помощью какого атрибута тега input можно указать типы файлов, которые пользователь сможет загрузить?
6 283
Как сравнить объекты в js ?
Спросят с вероятностью 7%
Сравнение объектов требует особого внимания, поскольку объекты являются ссылочными типами данных. Это значит, что при сравнении объектов вы фактически сравниваете их ссылки в памяти, а не их содержимое. Вот несколько способов сравнения объектов:
1️⃣Сравнение ссылок на объекты
При сравнении объектов с использованием оператора равенства (
== или ===), сравниваются их ссылки, а не содержимое.
const obj1 = { a: 1 };
const obj2 = { a: 1 };
const obj3 = obj1;
console.log(obj1 === obj2); // false
console.log(obj1 === obj3); // true
2️⃣Глубокое сравнение объектов
Для сравнения содержимого объектов необходимо проверять каждое свойство. Один из способов — написать рекурсивную функцию для глубокого сравнения.
function deepEqual(obj1, obj2) {
if (obj1 === obj2) {
return true;
}
if (obj1 == null || typeof obj1 !== 'object' ||
obj2 == null || typeof obj2 !== 'object') {
return false;
}
const keys1 = Object.keys(obj1);
const keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
return false;
}
for (let key of keys1) {
if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) {
return false;
}
}
return true;
}
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { a: 1, b: { c: 2 } };
const obj3 = { a: 1, b: { c: 3 } };
console.log(deepEqual(obj1, obj2)); // true
console.log(deepEqual(obj1, obj3)); // false
3️⃣Использование библиотек
Существуют библиотеки, которые предоставляют функции для глубокого сравнения объектов, например, lodash или deep-equal.
const _ = require('lodash');
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { a: 1, b: { c: 2 } };
const obj3 = { a: 1, b: { c: 3 } };
console.log(.isEqual(obj1, obj2)); // true
console.log(.isEqual(obj1, obj3)); // false
4️⃣Проверка свойств с учетом порядка и типов
Для простых случаев можно использовать сериализацию объектов с помощью JSON.stringify, однако этот метод имеет ограничения и может не работать с более сложными структурами (например, с функциями, undefined, или символами).
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { a: 1, b: { c: 2 } };
const obj3 = { a: 1, b: { c: 3 } };
console.log(JSON.stringify(obj1) === JSON.stringify(obj2)); // true
console.log(JSON.stringify(obj1) === JSON.stringify(obj3)); // false
Для сравнения объектов можно использовать:
✅Сравнение ссылок с ===, если нужно проверить, указывают ли переменные на один и тот же объект.
✅Глубокое сравнение с помощью рекурсивной функции или библиотек (например, lodash), чтобы проверить равенство содержимого объектов.
✅Сериализация с JSON.stringify для простых случаев, хотя этот метод имеет ограничения и может не работать с более сложными структурами.6 283
🖥 POLINE — отличная библиотека TypeScript для генерации палитры цветов
—
npm install poline
Название "POLINE" связано с сутью генератора — проведением линии в полярных координатах.6 283
CSS. Какое свойство используется для увеличения или уменьшения значения определенного CSS счетчика (counter)?
6 283
Очная онлайн-магистратура ИТМО: станьте DevOps-инженером
Онлайн-магистратура «DevOps-инженер облачных сервисов» от Яндекс Практикум
Вы сможете работать DevOps-инженером или SRE в крупных IT-компаниях
В магистратуре вы глубоко погрузитесь в программирование и научитесь создавать стабильную облачную инфраструктуру.
А ещё будете заниматься английским, чтобы было проще устроиться в международную компанию.
Фундаментальные знания, льготы очного студента и практический опыт Яндекса
Подать заявку
#реклама 16+
practicum.yandex.ru
О рекламодателе
6 283
Сообщество IT-специалистов в Telegram от Selectel.
Канал крупнейшего независимого провайдера IT-инфраструктуры и облаков.
Шесть причин подписаться на канал:
- железные новости;
- обзоры продуктов;
- разборы кейсов;
- актуальные IT-статьи;
- анонсы митапов;
- бесплатные курсы.
Подписаться
#реклама
О рекламодателе
6 283
Откуда берется контекст функции ?
Спросят с вероятностью 7%
Контекст функции — это значение, которое доступно через ключевое слово
this. Контекст функции определяется способом ее вызова, а не тем, где функция была определена. Вот основные способы, которыми определяется контекст функции:
1️⃣Глобальный контекст и контекст функций
✅Глобальный контекст:
В глобальной области видимости this ссылается на глобальный объект. В браузере это объект window.
console.log(this); // В браузере это будет window
✅Контекст функции:
При обычном вызове функции this ссылается на глобальный объект (в строгом режиме — undefined).
function showThis() {
console.log(this);
}
showThis(); // В браузере это будет window (или undefined в строгом режиме)
2️⃣Контекст методов объекта
Когда функция вызывается как метод объекта, this ссылается на объект, которому принадлежит метод.
const obj = {
name: 'Alice',
showThis: function() {
console.log(this);
}
};
obj.showThis(); // { name: 'Alice', showThis: [Function: showThis] }
3️⃣Конструкторы и классы
При вызове функции-конструктора с ключевым словом new, this ссылается на новый созданный объект.
function Person(name) {
this.name = name;
}
const alice = new Person('Alice');
console.log(alice.name); // Alice
4️⃣call, apply и bind
Эти методы позволяют явно устанавливать контекст this при вызове функции.
✅call: вызывает функцию с указанным значением this и аргументами, переданными по отдельности.
function showThis() {
console.log(this);
}
const obj = { name: 'Alice' };
showThis.call(obj); // { name: 'Alice' }
✅apply: вызывает функцию с указанным значением this и аргументами, переданными в виде массива.
showThis.apply(obj); // { name: 'Alice' }
✅bind: возвращает новую функцию, которая при вызове будет иметь указанный контекст this.
const boundShowThis = showThis.bind(obj);
boundShowThis(); // { name: 'Alice' }
5️⃣Стрелочные функции
Не имеют собственного контекста this. Вместо этого они захватывают this из окружающего лексического контекста.
const obj = {
name: 'Alice',
showThis: function() {
const arrowFunc = () => console.log(this);
arrowFunc();
}
};
obj.showThis(); // { name: 'Alice' }
6️⃣Обработчики событий
В обработчиках событий this ссылается на элемент, к которому прикреплен обработчик.
const button = document.querySelector('button');
button.addEventListener('click', function() {
console.log(this); // <button> элемент
});
Контекст функции (this) определяется способом вызова функции. В глобальной области видимости this ссылается на глобальный объект. В методах объекта this ссылается на сам объект. В функциях-конструкторах this ссылается на новый созданный объект. Методы call, apply и bind позволяют явно задавать значение this. Стрелочные функции захватывают this из окружающего контекста. В обработчиках событий this ссылается на элемент, к которому прикреплен обработчик.6 283
Чем полезно ИТ-обучение, кроме программмирования?
Только люди, прожившие 5 лет в глухом лесу, не слышали о том, что детей полезно учить цифровым навыкам еще с начальной школы.
Но в чём же она, эта несомненная, по мнению педагогов, польза?
Так ли уж необходимы все эти курсы?
Да и в чем практический смысл таких знаний для повседневной жизни?
😊Вот это не ясно!
Давайте разберёмся!
8 августа в 19:00 по МСК на бесплатной встрече педагоги из ИТ-школы Университета Иннополис готовы рассказать
💻где дети могут применять ИТ-навыки ежедневно,
🏃♂️какое преимущество появляется в будущем у детей, умеющих программировать,
📚зачем IT гуманитариям,
🎓как попробовать бесплатное обучение, чтоб понять, что ребенку это интересно и что занятия не будут заброшены через неделю.
Регистрируйтесь, тобы помочь своим детям стать успешными
Зарегистрироваться
#реклама
progmatica.innopolis.university
О рекламодателе
6 283
Обучаем Java-разработчиков оплата после выхода на работу
В Kata Academy можно выучиться на Java-разработчика бесплатно, а заплатить уже после трудоустройства по специальности из фактической зарплаты.
Если задуматься, то все в выигрыше:
— ты получаешь работу в Москве или Санкт-Петербурге с хорошей зарплатой, мы получаем процент за инвестиции в тебя;
— в наших интересах научить тебя так, чтобы твоя зарплата была как можно выше;
— мы прокачиваем твои навыки еще 2 года после курса: проводим выездные мероприятия и мастер-классы — и доходы наших выпускников растут;
— мы не зависим от банков и их рассрочек — кризис не повлиял на доступность курсов.
Чтобы попасть на курс, нужно выполнить небольшое тестовое задание. Переходи по ссылке и оставляй заявку!
Узнать больше
#реклама 16+
kata.academy
О рекламодателе
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
