JavaScript – это широко используемый язык программирования, необходимый для создания интерактивных и динамических веб-страниц. В результате многие собеседования на должности веб-разработчиков включают вопросы о JavaScript. В этой статье мы рассмотрим 11 распространенных вопросов на собеседовании по JavaScript и предоставим примеры и решения для каждого из них.
- В чем разница между let и var в JavaScript?
Основное различие между ключевыми словами ‘let’ и ‘var’ в JavaScript заключается в том, как они обрабатывают переменную область видимости. Переменные, объявленные с помощью «var, имеют область действия функции, а переменные, объявленные с помощью let, имеют область действия блока. Это означает, что к переменной, объявленной с помощью var, можно получить доступ внутри всей функции», в то время как к переменной, объявленной с помощью let, можно получить доступ только внутри блока, в котором она была объявлена.
Пример:
function example() { var x = 1; if (true) { var x = 2; // this will overwrite the x variable declared above console.log(x); // Output: 2 } console.log(x); // Output: 2 } function example() { let x = 1; if (true) { let x = 2; // this is a different variable, scoped only within the if block console.log(x); // Output: 2 } console.log(x); // Output: 1 }
2. Как объявить переменную в JavaScript?
В JavaScript переменные могут быть объявлены с использованием ключевых слов «var», «let» или «const». Переменные, объявленные с помощью «var», имеют область действия функции, а переменные, объявленные с помощью «let» и «const», имеют область действия блока.
Пример:
var x = 1; let y = 2; const z = 3;
3. Что такое замыкание в JavaScript?
Замыкание — это функция, которая имеет доступ к переменным и функциям в той области видимости, в которой она была создана, даже после закрытия этой области. Это позволяет функции «запоминать» свое состояние и продолжать обращаться к этим переменным.
Пример:
function makeCounter() { let count = 0; return function() { return count++; } } let counter = makeCounter(); console.log(counter()); // Output: 0 console.log(counter()); // Output: 1
4 . В чем разница между == и === в JavaScript?
Оператор «==» сравнивает значения на равенство, а оператор «===» сравнивает как значения, так и типы. Это означает, что оператор «===» вернет true только в том случае, если два сравниваемых значения относятся к одному типу и имеют одинаковое значение.
Пример:
console.log(1 == '1'); // Output: true console.log(1 === '1'); // Output: false
5. Как объявить массив в JavaScript?
Массивы в JavaScript создаются с использованием литеральной нотации массива, которая представляет собой набор квадратных скобок, содержащих список элементов, разделенных запятыми.
Пример:
let myArray = [1, 2, 3];
6. Что такое подъем в JavaScript?
Подъем — это поведение в JavaScript, при котором объявления переменных и функций перемещаются в верхнюю часть своей области видимости перед выполнением кода. Это означает, что переменные и функции можно использовать до того, как они будут объявлены в коде.
7. Объясните, как создать объект в JavaScript
Объект в JavaScript можно создать, используя литеральную нотацию объекта, которая представляет собой набор фигурных скобок, содержащих список свойств, разделенных запятыми.
Пример:
let myObject = { name: 'John', age: 25, location: 'New York' };
8. Объясните, как объявить функцию в JavaScript.
Функции в JavaScript объявляются с использованием ключевого слова function, за которым следует имя функции, набор круглых скобок и набор фигурных скобок, содержащих код функции.
Пример:
function myFunction() { console.log("Hello World!"); }
9. Объясните разницу между циклами for и forEach.
Цикл for используется для перебора набора операторов заданное количество раз, а цикл forEach используется для перебора массива и выполнения функции для каждого элемента массива.
Пример:
let myArray = [1, 2, 3, 4, 5]; // for loop for (let i = 0; i < myArray.length; i++) { console.log(myArray[i]); } // forEach loop myArray.forEach(function(element) { console.log(element); });
10. Объясните использование ключевого слова this в JavaScript.
Ключевое слово this в JavaScript относится к объекту, свойством которого является функция. Его можно использовать для доступа и управления свойствами объекта.
Пример:
let myObject = { name: 'John', age: 25, showName: function() { console.log(this.name); } }; myObject.showName(); // Output: John
11. Объясните разницу между функцией обратного вызова и обещанием в JavaScript.
Функция обратного вызова — это функция, которая передается в качестве аргумента другой функции и выполняется после выполнения родительской функции. Обещание — это объект, который представляет возможное завершение асинхронной операции и предоставляет методы для обработки успеха и неудачи.