SobesLab логотип SobesLab

Junior

  1. Ключевые особенности JavaScript? Junior
  2. В чём разница между JavaScript и Java? Junior
  3. Каковы преимущества JavaScript? Junior
  4. Какие есть недостатки у JavaScript? Junior
  5. Какие типы данных существуют в JavaScript? Junior
  6. Что такое примитивные типы данных в JavaScript? Junior
  7. Что означает динамическая типизация в JavaScript? Junior
  8. Как объявить переменную в JavaScript? Junior
  9. В чём разница между var, let и const? Junior
  10. Что такое поднятие (hoisting) переменных и функций? Junior
  11. Какие значения в JavaScript являются «ложными» (falsy)? Junior
  12. В чём разница между операторами == и ===? Junior
  13. В чём разница между значениями null и undefined? Junior
  14. Что такое NaN и какого типа это значение? Junior
  15. Как проверить, что переменная имеет значение NaN? Junior
  16. Как определить тип переменной в JavaScript? Junior
  17. Как преобразовать строку в число в JavaScript? Junior
  18. Как преобразовать число в строку в JavaScript? Junior
  19. Что такое массив в JavaScript? Junior
  20. Как добавить элемент в конец массива? Junior
  21. Как удалить последний элемент из массива? Junior
  22. Как добавить элемент в начало массива? Junior
  23. Как удалить первый элемент массива? Junior
  24. Как вставить элемент в массив по определённому индексу? Junior
  25. Как удалить элемент массива по индексу? Junior
  26. Как создать копию массива (клонировать массив)? Junior
  27. Что такое объект в JavaScript и как его создать? Junior
  28. Как удалить свойство из объекта? Junior
  29. Что такое JSON и для чего он используется? Junior
  30. Как конвертировать объект JavaScript в JSON-строку? Junior
  31. Как из JSON-строки получить объект JavaScript? Junior
  32. Что такое DOM? Junior
  33. Как получить элемент на странице по его id? Junior
  34. Чем отличается document.querySelector от document.getElementById? Junior
  35. В чём разница между свойствами innerHTML и textContent? Junior
  36. Как добавить CSS-класс элементу? Junior
  37. Как удалить CSS-класс у элемента? Junior
  38. Как назначить обработчик события на элемент? Junior
  39. Что такое всплытие событий? Junior
  40. Что такое погружение (capture) событий? Junior
  41. Для чего используется метод event.preventDefault()? Junior
  42. Как обработать исключения (ошибки) в JavaScript? Junior
  43. Что такое строгий режим ("use strict") и как его включить? Junior
  44. Что такое функция обратного вызова (callback)? Junior
  45. Что такое Promise? Junior
  46. Что такое async/await? Junior
  47. В чём разница между синхронным и асинхронным кодом? Junior
  48. Для чего нужны функции setTimeout и setInterval? Junior
  49. Что такое ECMAScript? Junior
  50. Какие новые возможности появились в ES6? Junior
  51. Что такое шаблонные строки (template literals) в JavaScript? Junior
  52. В чём разница между Function Declaration и Function Expression? Junior
  53. Что такое стрелочная функция (arrow function) в JavaScript? Junior
  54. Что такое объект arguments? Junior
  55. Как передаются аргументы функций: по значению или по ссылке? Junior
  56. Что произойдёт, если обратиться к переменной без объявления? Junior
  57. Что вернёт оператор typeof для массива? Junior
  58. Для чего используется метод Array.map()? Junior
  59. Для чего используется метод Array.filter()? Junior
  60. Для чего используется метод Array.reduce()? Junior
  61. Как работает метод Array.forEach()? Junior
  62. Чем отличается Array.forEach() от Array.map()? Junior
  63. Как удалить пробелы в начале и конце строки? Junior
  64. Как проверить, содержит ли строка определённую подстроку? Junior
  65. Как разделить строку по разделителю на части? Junior
  66. Как соединить элементы массива в строку? Junior
  67. Как округлить число до ближайшего целого? Junior
  68. В чём разница между Math.floor() и Math.ceil()? Junior
  69. Как получить случайное число в JavaScript? Junior
  70. Как проверить, является ли значение числом (конечным)? Junior
  71. Что такое cookie и для чего оно используется? Junior
  72. Как работает метод fetch и для чего он используется? Junior
  73. Что такое AJAX и зачем он нужен? Junior

Middle

  1. Что такое замыкание и как оно работает? Middle
  2. Как работает прототипное наследование в JavaScript? Middle
  3. Что такое ключевое слово `this` и как определяется его значение? Middle
  4. Чем отличается `this` в стрелочной функции? Middle
  5. Что такое цикл событий (Event Loop) в JavaScript? Middle
  6. Какие состояния может принимать Promise? Middle
  7. Что такое цепочка промисов (promise chaining)? Middle
  8. Что такое "ад колбеков" (callback hell) и как его избежать? Middle
  9. Что такое делегирование событий? Middle
  10. В чём разница между методами call, apply и bind? Middle
  11. Что такое функция высшего порядка? Middle
  12. Как создать объект без прототипа? Middle
  13. Как проверить наличие свойства в объекте? Middle
  14. Почему сравнение двух объектов {} возвращает false? Middle
  15. Что такое модуль в JavaScript? Middle
  16. В чём разница между модулями CommonJS и ES6? Middle
  17. Как клонировать объект в JavaScript? Middle
  18. Что такое деструктуризация в JavaScript? Middle
  19. Что такое rest-параметр и для чего он используется? Middle
  20. Что такое spread-оператор и для чего он используется? Middle
  21. Что такое WeakMap и как он отличается от Map? Middle
  22. Чем отличается WeakSet от Set? Middle
  23. Как работает сборщик мусора в JavaScript? Middle
  24. Что такое IIFE и зачем она используется? Middle
  25. В чём разница между event.preventDefault() и event.stopPropagation()? Middle
  26. Что такое "debounce" и "throttle" и зачем они нужны? Middle
  27. Как можно повысить производительность JavaScript-кода? Middle
  28. Что такое мемоизация и когда она применяется? Middle
  29. Что такое полифил и зачем он нужен? Middle
  30. В чём разница между циклами for...in и for...of? Middle
  31. Можно ли использовать стрелочную функцию как конструктор? Middle
  32. Что такое поверхностное и глубокое копирование объектов? Middle
  33. Как обработать ошибки в асинхронном коде (в Promise или async/await)? Middle
  34. Какими способами можно выполнять асинхронные операции в JavaScript? Middle
  35. Что такое регулярные выражения и для чего они используются? Middle
  36. В чём разница между операторами typeof и instanceof? Middle
  37. В чём разница между cookie, localStorage и sessionStorage? Middle
    Все три механизма позволяют хранить данные на стороне браузера, но отличаются по характеру и объёму хранения. **Cookie** – небольшие (до ~4KB) строки, которые отправляются на сервер с каждым HTTP-запросом (если не указаны флаги, запрещающие это). Куки обычно имеют время жизни и используются для сессий, авторизации. **localStorage** – веб-хранилище, хранящее пары ключ-значение (строки) без автоматической отправки на сервер; данные localStorage сохраняются даже после закрытия браузера и доступны на том же домене при последующих посещениях. Объём localStorage значительно больше (порядка нескольких мегабайт). **sessionStorage** похож на localStorage, но \"живёт\" только в пределах одной сессии (данные хранятся пока открыт вкладка/окно браузера). После закрытия вкладки sessionStorage очищается. Итого: cookie – для общения с сервером (и для данных, которым нужен доступ на сервере), localStorage – для долгосрочного хранения на клиенте, sessionStorage – для хранения на время сессии.
  38. Каковы преимущества использования Map по сравнению с объектом? Middle
  39. Почему использование eval() считается плохой практикой? Middle
  40. Как выполнить несколько промисов параллельно? Middle
  41. В чём разница между Promise.all и Promise.race? Middle
  42. Для чего нужен метод Promise.finally()? Middle
  43. Поддерживает ли JavaScript ООП и как оно реализовано? Middle
  44. Чем отличаются свойства event.target и event.currentTarget? Middle
  45. Для чего используются операторы break и continue? Middle
  46. В чём разница между событиями DOMContentLoaded и load? Middle
  47. Почему не рекомендуется изменять прототипы встроенных объектов? Middle
  48. Что такое Symbol и для чего он нужен? Middle
  49. Для чего используется тип BigInt? Middle
  50. В чём разница между функциями parseInt() и parseFloat()? Middle
  51. Чем отличается isNaN() от Number.isNaN()? Middle
  52. Чем отличается Array.forEach() от Array.map()? Middle
  53. Что такое геттеры и сеттеры в JavaScript? Middle
  54. Почему промисы (или async/await) предпочтительнее колбеков? Middle
  55. В чём разница между XMLHttpRequest и fetch()? Middle
  56. Что такое CORS? Middle
  57. Как преобразовать NodeList в массив? Middle
  58. Что возвращает typeof при применении к функции? Middle

Senior

  1. Что такое опциональная цепочка (`?.`) в JavaScript? Senior
  2. Для чего используется оператор `??` (nullish coalescing)? Senior
  3. В чём разница между микрозадачами и макрозадачами в Event Loop? Senior
  4. Что такое утечка памяти в JavaScript и как её избежать? Senior
    Утечка памяти – это ситуация, когда программа удерживает ссылки на объекты, которые уже не нужны, из-за чего сборщик мусора не может освободить память. В JavaScript утечки памяти могут возникать, например, при размещении объектов в глобальной области (они остаются на всё время работы приложения), при создании замыканий, удерживающих большие структуры неосвобождёнными, или при забытом очищении таймеров/обработчиков (они хранят ссылки на объекты). Чтобы избежать утечек, следует: освобождать ненужные ссылки (обнулить свойства, удалить обработчики событий, очищать массивы, если они больше не нужны), избегать создания ненужных глобальных переменных, следить за замыканиями (не хранить в замыкании избыточные данные). В современных браузерах крупные утечки – редкость, но внимательность требуется, особенно в долгоживущих одностраничных приложениях.
  5. Что происходит при вызове функции с ключевым словом `new`? Senior
  6. Что такое Proxy и для чего он используется? Senior
  7. Как сделать свойство объекта неперечисляемым? Senior
  8. Что такое типизированный массив (TypedArray)? Senior
  9. Что такое каррирование функций (currying)? Senior
  10. Как сделать объект итерируемым и для чего используется Symbol.iterator? Senior
  11. Почему 0.1 + 0.2 не равно 0.3? Senior
  12. Чем отличается значение undefined от ошибки "is not defined"? Senior
  13. Что такое чистая функция (pure function) в JavaScript? Senior
  14. Что такое лексическое окружение (lexical environment) в JavaScript? Senior
  15. Объясните понятия "стек вызовов" (call stack) и "куча" (heap) в JavaScript. Senior
  16. В чём разница между использованием const и Object.freeze() для объектов? Senior
  17. Что такое генераторная функция (function*) и как работает yield? Senior
  18. Что возвращает функция, объявленная с async? Senior
  19. Что такое паттерн "Наблюдатель" (Observer) и где он используется? Senior
  20. Чем различаются __proto__ и свойство prototype? Senior
  21. Что такое XSS-атака и как от неё защититься? Senior
  22. Для чего нужны атрибуты async и defer в теге `<script>`? Senior
  23. Чем отличается event.stopImmediatePropagation() от event.stopPropagation()? Senior
  24. Зачем вызывают setTimeout(func, 0)? Senior
  25. Что такое контекст выполнения (execution context) в JavaScript? Senior
  26. Поддерживает ли JavaScript оптимизацию хвостовых вызовов (tail-call optimization)? Senior
  27. Что такое шаблон "Модуль" (Module pattern) в JavaScript? Senior
  28. В чём разница между глобальным объектом в браузере и в Node.js? Senior
  29. Что делает метод Promise.allSettled()? Senior
  30. Что произойдёт, если конструктор функции при вызове через `new` вернёт объект? Senior
  31. Какое значение принимает `this` при вызове функции без контекста в строгом режиме и вне строгого? Senior
  32. Как JavaScript выполняет нестрогое сравнение (==) разных типов? Senior
  33. Как объявить приватное поле класса? Senior
  34. В чём разница между Object.seal() и Object.freeze()? Senior
  35. Что такое "Temporal Dead Zone" в JavaScript? Senior
  36. Как JavaScript преобразует объект к примитивному значению? Senior
  37. Что произойдёт, если использовать объект как ключ свойства обычного объекта? Senior
  38. Чему равно выражение [] == ![] и почему? Senior