Ответ
JavaScript — это основа фронтенда. Хорошо знаю синтаксис, асинхронность (Promises, async/await), замыкания, прототипы, работу с DOM и событиями.
Пример с замыканием:
function createCounter() {
let count = 0;
return () => ++count;
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
Работа с DOM:
const button = document.querySelector('button');
button.addEventListener('click', () => {
console.log('Clicked!');
});
Понимаю Event Loop, микро/макрозадачи, различия между var, let, const. Умею работать с Fetch API, localStorage, JSON.
Ответ 18+ 🔞
Ну, слушай, вот JavaScript — это, блядь, как фундамент для всего фронтенда, понимаешь? Без него ты просто, нахуй, картинку на экране нарисуешь и всё. А я эту тему, сука, проехал вдоль и поперёк: синтаксис, асинхронность (эти ваши Promises, async/await), замыкания, прототипы, работу с DOM и события — всю эту хуйню.
Вот, смотри, замыкание, например, — это ж пиздец как просто, если врубиться:
function createCounter() {
let count = 0;
return () => ++count;
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
Видишь? Переменная count как бы заперта внутри, и её, сука, снаружи не достать, но функция-то помнит её, как родную! Красота, ёпта.
А вот DOM — это вообще отдельная песня, блядь:
const button = document.querySelector('button');
button.addEventListener('click', () => {
console.log('Clicked!');
});
Нашёл кнопку, сука, повесил на неё слушателя, и она, блядь, ожила! Кликнул — и в консоль плюнула. Магия, ебать мои старые костыли!
И Event Loop этот, микро/макрозадачи — это ж надо понимать, как оно всё, блядь, крутится под капотом, а то наебнёшься с асинхронщиной. И var, let, const — тут, сука, не накосячить, а то потом ищешь баг, а он, пизда, в области видимости сидит.
Fetch API, localStorage, JSON — это уже, типа, рабочие инструменты, без них ни туды и ни сюды. В общем, JavaScript — это, блядь, такая штука, которую либо знаешь, либо нет. Полузнания тут, сука, не катят.