Frontend | Вопросы собесов
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
Ko'proq ko'rsatish📈 Telegram kanali Frontend | Вопросы собесов analitikasi
Frontend | Вопросы собесов (@easy_javascript_ru) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 17 326 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 465-o'rinni va Rossiya mintaqasida 37 811-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 17 326 obunachiga ega bo‘ldi.
05 Noyabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -286 ga, so‘nggi 24 soatda esa -4 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 6.64% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.45% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 1 152 marta ko‘riladi; birinchi sutkada odatda 771 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 4 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent ставь, браузер, html, border, flex kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Сайт: https://easyoffer.ru/
Все каналы: t.me/+xGeAw6ckJ4liYzQy
Контакт для рекламы: @sendme_ads”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 06 Noyabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
var. Переменные, объявленные с var, имеют функциональную область видимости (function scope) и подлежат хостингу.
var x = 10;
if (true) {
var x = 20;
console.log(x); // 20
}
console.log(x); // 20
ES6+: Объявление переменных с помощью let и const. Переменные, объявленные с let и const, имеют блочную область видимости (block scope) и не подлежат хостингу в том виде, как var.
let y = 10;
if (true) {
let y = 20;
console.log(y); // 20
}
console.log(y); // 10
const z = 30;
// z = 40; // Ошибка: Assignment to constant variable.
🟠Стрелочные функции
ES5: Определение функций с использованием ключевого слова function.
var add = function(a, b) {
return a + b;
};
ES6+: Стрелочные функции, которые предоставляют более краткий синтаксис и не имеют собственного значения this.
const add = (a, b) => a + b;
🟠Шаблонные строки
ES5: Конкатенация строк с использованием оператора +.
var name = 'Alice';
var greeting = 'Hello, ' + name + '!';
ES6+: Использование шаблонных строк с обратными кавычками (`` ` ``) и интерполяцией.
const name = 'Alice';
const greeting = `Hello, ${name}!`;
🟠Деструктуризация
ES5: Извлечение значений из массивов и объектов с использованием точечной нотации.
var arr = [1, 2, 3];
var first = arr[0];
var second = arr[1];
var obj = {a: 1, b: 2};
var a = obj.a;
var b = obj.b;
ES6+: Деструктуризация массивов и объектов.
const [first, second] = [1, 2, 3];
const {a, b} = {a: 1, b: 2};
🟠Промисы
ES5: Обработка асинхронных операций с использованием колбэков.
function fetchData(callback) {
setTimeout(function() {
callback('data');
}, 1000);
}
fetchData(function(data) {
console.log(data); // 'data'
});
ES6+: Введение промисов для более удобной работы с асинхронными операциями.
const fetchData = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve('data');
}, 1000);
});
};
fetchData().then(data => {
console.log(data); // 'data'
});
Ставь 👍 и забирай 📚 Базу знанийvar, поднимаются в начало своей функции или глобальной области видимости. При этом они инициализируются значением undefined.
console.log(a); // undefined
var a = 10;
console.log(a); // 10
На самом деле, вышеуказанный код интерпретируется JavaScript движком следующим образом:
var a;
console.log(a); // undefined
a = 10;
console.log(a); // 10
🟠Хостинг с использованием let и const
Переменные, объявленные с помощью let и const, также поднимаются, но они не инициализируются. Попытка доступа к ним до объявления приведет к ошибке ReferenceError из-за временной мертвой зоны (Temporal Dead Zone, TDZ).
console.log(b); // ReferenceError: Cannot access 'b' before initialization
let b = 20;
console.log(b); // 20
🟠Хостинг функций
Функции, объявленные с помощью Function Declaration, поднимаются полностью, включая тело функции. Это позволяет вызывать функции до их фактического объявления в коде.
console.log(sum(2, 3)); // 5
function sum(a, b) {
return a + b;
}
На самом деле, вышеуказанный код интерпретируется JavaScript движком следующим образом:
function sum(a, b) {
return a + b;
}
console.log(sum(2, 3)); // 5
🟠Хостинг функциональных выражений
Функции, объявленные с помощью Function Expression, поднимаются как обычные переменные. То есть их объявления поднимаются, но сами функции остаются неинициализированными до выполнения строки, где они определены.
console.log(subtract); // undefined
console.log(subtract(5, 3)); // TypeError: subtract is not a function
var subtract = function(a, b) {
return a - b;
};
console.log(subtract(5, 3)); // 2
🚩Важные аспекты хостинга
🟠Понимание и использование хостинга
Хостинг позволяет писать код, который может использовать функции и переменные до их фактического объявления, что может быть полезно в некоторых случаях. Однако злоупотребление этим механизмом может привести к путанице и трудноуловимым ошибкам.
🟠Лучшие практики
Рекомендуется объявлять все переменные и функции в начале их соответствующей области видимости. Это улучшает читаемость и поддержку кода. Используйте let и const вместо var, чтобы избежать проблем с хостингом и повысить безопасность и предсказуемость кода.
Ставь 👍 и забирай 📚 Базу знанийfunction, за которым следует имя функции. Функции, определенные таким образом, подлежат "поднятию" (hoisting), что означает, что их можно использовать до их фактического объявления в коде.
🚩Синтаксис Function Declaration
function имяФункции(параметр1, параметр2, ...) {
// Тело функции
// Инструкции
}
🚩Примеры использования Function Declaration
Основное объявление функции
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet('Alice')); // Hello, Alice!
🟠Поднятие (Hoisting)
Функции, объявленные с помощью Function Declaration, поднимаются, что позволяет вызывать их до объявления в коде.
console.log(sum(2, 3)); // 5
function sum(a, b) {
return a + b;
}
🚩Отличия между Function Declaration и Function Expression
🟠Поднятие (Hoisting)
Function Declaration: Функции поднимаются и могут быть вызваны до их объявления.
console.log(multiply(2, 3)); // 6
function multiply(a, b) {
return a * b;
}
Function Expression: Функциональные выражения не поднимаются, поэтому их можно использовать только после их определения.
console.log(divide(6, 3)); // Ошибка: divide is not defined
const divide = function(a, b) {
return a / b;
};
🟠Именование
Function Declaration: Обязательно имеют имя.
function subtract(a, b) {
return a - b;
}
Function Expression: Могут быть анонимными или именованными.
const modulo = function(a, b) {
return a % b;
};
🟠Использование в коде
Function Declaration: Часто используются для определения основных функций, которые нужны на протяжении всего кода. Они удобны для структурирования кода и обеспечения доступности функций в любом месте программы.
Function Expression: Более гибкий способ определения функций, который часто используется для создания замыканий, обработки событий и в функциональных конструкциях, таких как методы массивов (map, filter и т.д.).
Function Declaration
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet('Alice')); // Hello, Alice!
Function Expression
const greet = function(name) {
return `Hello, ${name}!`;
};
console.log(greet('Alice')); // Hello, Alice!
🚩Когда использовать
🟠Замыкания и колбэки
Когда вам нужно создать функцию в контексте другой функции, например, передать её как аргумент или вернуть как результат.
🟠Модули и объекты
Когда функции являются частью модуля или объекта и вы хотите ограничить их видимость или управление.
Ставь 👍 и забирай 📚 Базу знанийconst add = function(a, b) {
return a + b;
};
console.log(add(2, 3)); // 5
Анонимные функции
const greet = function(name) {
return `Hello, ${name}!`;
};
console.log(greet('Alice')); // Hello, Alice!
Именованные функции
const factorial = function fact(n) {
if (n <= 1) return 1;
return n * fact(n - 1);
};
console.log(factorial(5)); // 120
Использование функции в качестве аргумента другой функции
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(function(number) {
return number * 2;
});
console.log(doubled); // [2, 4, 6, 8, 10]
IIFE (Immediately Invoked Function Expression)
(function() {
const message = 'Hello, World!';
console.log(message);
})();
// Hello, World!
Использование стрелочных функций
const multiply = (a, b) => a * b;
console.log(multiply(2, 3)); // 6
🚩Основные отличия
🟠Поднятие (Hoisting)
Функции, определенные с помощью функционального объявления, поднимаются, то есть могут быть вызваны до их определения в коде.
console.log(add(2, 3)); // 5
function add(a, b) {
return a + b;
}
Функциональные выражения не поднимаются, поэтому они могут быть использованы только после их определения.
console.log(add(2, 3)); // Ошибка: add is not defined
const add = function(a, b) {
return a + b;
};
🟠Именование
Обязательно имеют имя.
function subtract(a, b) {
return a - b;
}
Могут быть анонимными или именованными.
const divide = function(a, b) {
return a / b;
};
🟠Использование в коде
Подходит для определения основных функций на верхнем уровне программы. Более гибкий способ определения функций, особенно полезен для создания замыканий, обработки событий и использования в функциональных конструкциях.
Ставь 👍 и забирай 📚 Базу знанийnpm install -g @ionic/cli
2⃣Создание нового проекта
ionic start myApp tabs --type=angular
3⃣Запуск приложения в браузере
cd myApp
ionic serve
4⃣Сборка и запуск на мобильном устройстве
ionic capacitor add android
ionic capacitor run android
🚩Плюсы
➕Снижение затрат на разработку
Разработка и поддержка единой кодовой базы для нескольких платформ позволяет сократить затраты на разработку и время выхода на рынок.
➕Кроссплатформенность
Возможность запуска на различных платформах без необходимости переписывать код для каждой платформы.
➕Использование существующих навыков
Веб-разработчики могут использовать свои знания HTML, CSS и JavaScript для создания мобильных приложений.
🚩Минусы
➖Производительность
Гибридные приложения могут работать медленнее по сравнению с нативными приложениями, особенно при выполнении сложных графических операций или интенсивного использования ресурсов.
➖Ограниченный доступ к нативным функциям
Хотя большинство нативных функций доступны через плагины, некоторые из них могут быть ограничены или требовать дополнительных усилий для интеграции.
➖Пользовательский интерфейс
Достижение нативного пользовательского интерфейса может быть сложным, и гибридные приложения могут не всегда соответствовать ожиданиям пользователей по внешнему виду и поведению.
Ставь 👍 и забирай 📚 Базу знаний