Некоторые вопросы интервью о JavaScript

  1. Правдивые и ложные ценности: я объяснил об этом в другой своей статье. Посетите раздел Некоторые основы JavaScript.
  2. Null vs Undefined. В JavaScript значение null означает, что значение не имеет значения. «undefined» — это значение, которое присваивается переменной при ее объявлении на этапе создания или загрузки выполнения контекста.
  3. Двойное равенство (==) и тройное равенство (===), неявное преобразование (очень важно). В JavaScript двойное равенство (==) сравнивает только значения, но тройное равенство (===) сравнить значения вместе с типом. Тройное равенство также называют «строгим равенством», «тождеством». Двойное равенство также называют «свободным равенством».
  4. scope , block scope , доступ к внешней области видимости (очень важно): я объяснил about в другой моей статье. Посетите раздел Некоторые основы JavaScript.
  5. замыкание, инкапсуляция, закрытая переменная (очень важно). Замыкание — это функция, которая упакована вместе (заключена) со ссылками на ее окружение (лексическое окружение). Другими словами, замыкание позволяет внутренней функции войти в домен внешней функции. Замыкания генерируются каждый раз, когда функция создается в JavaScript, во время разработки функции. Проще говоря, если функция определена в другой функции и использует переменные своей родительской функции, то это явление называется более близким, что означает, что внутренняя функция заключает в себе ссылки своей родительской функции. По этой причине внутренняя функция может получить доступ к значению переменных своей родительской области.
var num1 = 2;
var sum = function () {
var num2 = 3;      //closure 
return function () {
    var num3 = 4;
      return function () {
        return num1 + num2 + num3;
      };
    };
};
var myFunc = sum();
console.dir(myFunc);
//Browser Console:
ƒ anonymous()
  arguments: null
  caller: null
  length: 0
  name: ""
  prototype: {constructor: ƒ}
  __proto__: ƒ ()
   [[FunctionLocation]]: test.js:4
[[Scopes]]: Scopes[2]
  0: Closure (sum) {num2: 3}
  1: Global {window: Window, self: Window, document: document, name:       "", location: Location, …}

6. Разница между bind , call и apply (очень важная): я подробно объяснил это в своей другой статье под названием Некоторые основы JavaScript в разделе этого ключевого слова. Посетите раздел Некоторые основы JavaScript.

7. окно, глобальная переменная , глобальная область действия (очень важно):пожалуйста, посетите Некоторые основы JavaScript. Я там объяснил.

8. Как понимать это ключевое слово (очень важно): посетите Некоторые основы JavaScript. Там тема раскрыта.

9. Асинхронный JavaScript (setTimeOut(), SetInteval()):синхронные задачи выполняются в последовательном порядке, при этом каждый аргумент ожидает завершения предыдущего, прежде чем продолжить. Но в случае асинхронного кода программное обеспечение продолжает работать, не дожидаясь завершения асинхронного кода. Такие setTimeOut(), SetInteval(), асинхронная функция и т. д. Во время выполнения кода, если в стеке есть какая-либо асинхронная функция, JavaScript не выполняет эту функцию мгновенно, а назначает задачу WEB API (в случае браузера), C++ API (Node Js) и выполнение следующей задачи в стеке вызовов. Когда WEB API завершает задачу, он передает результат в другую структуру данных, называемую «Очередь обратного вызова» (следует за структурой данных «первым пришел — первым обслужен» (FIFO)). Если в WEB API есть какие-либо промисы, то WEB api передаст свой вызов ( promises ) обратно в другую очередь, которая называется MICRO TASK QUEUE (функция ES6), которая имеет более высокий приоритет для цикла событий, чем очередь обратного вызова. Затем, когда синхронные задачи выполняются в стеке, механизм JavaScript «Event Loop» берет все результаты в стек вызовов из очереди обратного вызова или очереди микрозадач в соответствии с предпочтениями по методу FIFO и выполняет выполнение.

10. Как работает JavaScript, стек цикла событий, очередь:пожалуйста, посетите мою статью Цикл событий JavaScript и Как работает код java-скрипта? .

11. Некоторые решения проблем: найти самый большой элемент массива, удалить повторяющийся элемент из массива (очень важно), подсчитать количество слов в строке, перевернуть строку (очень важно), вычислить факториал числа, используя цикл for, вычислить факториал в рекурсивной функции, создать ряд Фибоначчи с помощью цикла for (очень важно), создать ряд Фибоначчи рекурсивным способом (очень важно), проверить, является ли число простым числом или нет (очень важно).

12.Облако события с примером (очень важно)

13. Делегат события и цель пузырька события (очень важно)

14. Пусть, const, массив, объявленный с помощью const, объект, объявленный с помощью const

15. Стрелочная функция, несколько параметров, тело функции

16. Что такое JavaScript, основные возможности JavaScript

17. Как работает рекурсия и рекурсия против итеративности

18. Что такое DOM (объектная модель документа)

19. Когда и как использовать функцию обратного вызова JavaScript

20. Что такое API, назначение API, GET, POST