Frontend | Вопросы собесов
Сайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+T0COHtFzCJkwMDUy Задачи t.me/+_tcX2w2EmvdmMTgy Вакансии t.me/+CgCAzIyGHHg0Nzky
Показати більше📈 Аналітичний огляд Telegram-каналу Frontend | Вопросы собесов
Канал Frontend | Вопросы собесов (@easy_javascript_ru) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 18 272 підписників, посідаючи 7 328 місце в категорії Технології та додатки та 36 922 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 18 272 підписників.
За останніми даними від 18 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -130, а за останні 24 години на -5, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 9.76%. Протягом перших 24 годин після публікації контент зазвичай збирає 5.46% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 1 783 переглядів. Протягом першої доби публікація в середньому набирає 997 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 9.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як ставь, браузер, html, border, flex.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Сайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp
Тесты t.me/+T0COHtFzCJkwMDUy
Задачи t.me/+_tcX2w2EmvdmMTgy
Вакансии t.me/+CgCAzIyGHHg0Nzky”
Завдяки високій частоті оновлень (останні дані отримано 19 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet('Alice')); // Hello, Alice!
Функция объявляется с помощью ключевого слова function, за которым следуют имя функции, список параметров в круглых скобках и тело функции в фигурных скобках.
2️⃣Function Expression (Функциональное выражение):
const greet = function(name) {
returnни нужны
1️⃣Повтор
};
console.log(greet('Bob')); // Hello, Bob!
Функция создается и присваивается переменной. Такие функции могут быть анонимными (без имени).
3️⃣Arrow Function (Стрелочная функция):
const greet = (name) => {
return Hello, ${name}!;
};
console.log(greet('Carol')); // Hello, Carol!
Стрелочные функции имеют более короткий синтаксис и не имеют своего контекста this.
Вызов функции
Функцию можно вызвать, используя её имя и передавая необходимые аргументы в круглых скобках:
function add(a, b) {
return a + b;
}
console.log(add(2, 3)); // 5
Параметры и аргументы
✅Параметры — это переменные, которые перечислены в круглых скобках при объявлении функции.
✅Аргументы — это значения, которые передаются функции при её вызове.
Возвращаемое значение
Функция может возвращать значение с помощью ключевого слова return. Если return отсутствует, функция возвращает undefined.
function multiply(a, b) {
return a * b;
}
console.log(multiply(4, 5)); // 20
Область видимости
Переменные, объявленные внутри функции, имеют локальную область видимости и недоступны за её пределами:
function scopeExample() {
let localVar = 'I am local';
console.log(localVar); // I am local
}
scopeExample();
console.log(localVar); // ReferenceError: localVar is not defined
Замыкания (Closures)
Функции имеют доступ к переменным из внешних функций благодаря замыканиям:
function outerFunction() {
let outerVar = 'I am outside!';
function innerFunction() {
console.log(outerVar);
}
return innerFunction;
}
const inner = outerFunction();
inner(); // I am outside!
Функция — это блок кода, который можно многократно использовать. Функции помогают делать код структурированным, повторно используемым и более читаемым.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1429 вопроса на Frontend разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовыхvar, let и const. Они имеют разные особенности и используются в разных ситуациях.
var
Использовался до появления ES6 (ECMAScript 2015) и обладает следующими особенностями:
1️⃣Область видимости: var имеет функциональную область видимости, то есть она видна внутри функции, где была объявлена, или в глобальной области, если объявлена вне функций.
2️⃣Поднятие (hoisting): Объявления с var поднимаются вверх своей области видимости, но присвоение значения происходит в том месте, где оно записано. Это значит, что переменную можно использовать до ее объявления.
3️⃣Повторное объявление: Переменные, объявленные с var, могут быть переобъявлены в пределах одной и той же области видимости.
Пример:
function exampleVar() {
console.log(x); // undefined
var x = 10;
console.log(x); // 10
}
exampleVar();
let
Появился в ES6 и решает многие проблемы, связанные с var:
1️⃣Область видимости: let имеет блочную область видимости, то есть виден только внутри блока {}, в котором объявлен.
2️⃣Поднятие (hoisting): Хотя объявления с let поднимаются, доступ к ним возможен только после строки, где они объявлены (временная мертвая зона).
3️⃣Повторное объявление: Нельзя переобъявить переменную, объявленную с let, в той же области видимости.
Пример:
function exampleLet() {
console.log(y); // ReferenceError: y is not defined
let y = 10;
console.log(y); // 10
}
exampleLet();
const
Также введённый в ES6, используется для объявления констант:
1️⃣Область видимости: Как и let, имеет блочную область видимости.
2️⃣Поднятие (hoisting): Ведет себя аналогично let в плане поднятия и временной мертвой зоны.
3️⃣Изменение значения: Переменная, объявленная с const, должна быть инициализирована при объявлении и её значение нельзя изменить после этого. Однако, если const используется для объявления объекта или массива, можно изменять их содержимое.
Пример:
function exampleConst() {
const z = 10;
console.log(z); // 10
z = 20; // TypeError: Assignment to constant variable.
}
exampleConst();
function exampleConstObject() {
const obj = { key: 'value' };
obj.key = 'new value'; // Изменение допустимо
console.log(obj.key); // 'new value'
}
exampleConstObject();
Когда использовать
✅`var`: Обычно рекомендуется избегать, так как let и const обеспечивают лучшую управляемость кода.
✅`let`: Используется для переменных, которые могут изменяться в процессе выполнения программы.
✅`const`: Используется для значений, которые не будут переназначены. Это помогает предотвратить ошибки и делает код более предсказуемым.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1429 вопроса на Frontend разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых== или ===), сравниваются их ссылки, а не содержимое.
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 для простых случаев, хотя этот метод имеет ограничения и может не работать с более сложными структурами.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1429 вопроса на Frontend разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Image Size Example</title>
<style>
img {
display: block;
max-width: 100%;
height: auto;
}
</style>
</head>
<body>
<h1>Example Image</h1>
<img src="image.jpg" width="600" height="400" alt="Example Image">
</body>
</html>
В этом примере:
✅Атрибуты width и height задают фиксированные размеры для изображения. Это позволяет браузеру зарезервировать нужное пространство до загрузки изображения.
✅CSS-правило max-width: 100%; height: auto; гарантирует, что изображение будет масштабироваться в зависимости от ширины контейнера, сохраняя пропорции.
Указание ширины и высоты для изображений в HTML улучшает производительность и пользовательский опыт. Оно позволяет браузеру зарезервировать пространство для изображений, предотвращает переформатирование страницы и смещение контента, ускоряет рендеринг и снижает время до первого отрисовки.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1429 вопроса на Frontend разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых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 ссылается на элемент, к которому прикреплен обработчик.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1429 вопроса на Frontend разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
