Ирина Кириченко

100 вопросов на собеседование по JavaScript. С подробными объяснениями


Скачать книгу

иметь свои собственные методы this.

      const regularFunction = function(a, b) {

      return a + b;

      };

      const arrowFunction = (a, b) => a + b; // Короткий синтаксис для однострочных выражений

      // Стрелочная функция с использованием фигурных скобок

      const arrowFunctionWithBlock = (a, b) => {

      const result = a + b;

      return result;

      };

      9. Что такое асинхронность в JavaScript? Какие инструменты предоставляет JavaScript для работы с асинхронным кодом?

      Асинхронность в JavaScript – это способ выполнения операций, который не блокирует основной поток выполнения. В JavaScript для работы с асинхронным кодом используются колбэки (callbacks), промисы (promises), async/await и другие методы, позволяющие эффективно управлять асинхронными операциями.

      // Пример использования Promise и fetch для асинхронного получения данных

      fetch('https://api.example.com/data')

      .then(response => response.json())

      .then(data => console.log(data))

      .catch(error => console.error('Error fetching data:', error));

      // Пример использования async/await

      async function fetchData() {

      try {

      const response = await fetch('https://api.example.com/data');

      const data = await response.json();

      console.log(data);

      } catch (error) {

      console.error('Error fetching data:', error);

      }

      }

      10. Как работает система обработки ошибок (error handling) в JavaScript?

      Система обработки ошибок (error handling) в JavaScript позволяет обнаруживать и обрабатывать ошибки в коде. Это включает в себя использование конструкции try…catch, где код, который может вызвать ошибку, помещается в блок try, а обработка ошибки происходит в блоке catch.

      function divide(a, b) {

      try {

      if (b === 0) {

      throw new Error('Division by zero');

      }

      return a / b;

      } catch (error) {

      console.error('Error:', error.message);

      }

      }

      console.log(divide(10, 2)); // Выведет: 5

      console.log(divide(10, 0)); // Выведет: "Error: Division by zero"

      11. Что такое hoisting в JavaScript? Как это работает с переменными и функциями?

      Hoisting в JavaScript – это механизм, при котором переменные и функции "поднимаются" вверх своей области видимости перед тем, как код начнет выполняться. Это означает, что переменные могут быть объявлены после их использования, а функции могут быть вызваны до их объявления. Однако только объявления переменных и функций поднимаются, а присвоения значений остаются на своих местах.

      console.log(myVar); // Выведет: undefined

      let myVar = 10;

      12. Чем отличается синхронный код от асинхронного? Какие могут быть преимущества использования асинхронного кода?

      Синхронный код выполняется последовательно, один шаг за другим, в то время как асинхронный код позволяет выполнить некоторые операции параллельно или отложить их выполнение, продолжая выполнение кода. Преимущества асинхронного кода включают повышение производительности за счет параллельного выполнения операций и предотвращение блокировки потока выполнения, что позволяет приложению быть более отзывчивым.

      13. Что такое Event Loop в JavaScript? Как он влияет на выполнение асинхронного кода?

      Event Loop (Цикл событий) – это механизм в JavaScript, который контролирует порядок выполнения кода. Он следит за стеком вызовов и очередью колбэков, перемещая колбэки из очереди в стек при завершении синхронного кода. Это позволяет асинхронному коду выполняться после завершения синхронных операций, не блокируя