100 вопросов на собеседование по JavaScript. С подробными объяснениями. Ирина Кириченко
может быть воспроизведена, передана в какой-либо форме или любыми средствами, электронными или механическими, включая фотокопирование, запись или любые другие системы хранения и передачи информации, без предварительного письменного разрешения владельца авторских прав.
Это практическое руководство представляет собой сборник вопросов и ответов по JavaScript, охватывающих ключевые аспекты языка, важные для подготовки к техническим собеседованиям. От основ до актуальных тем, книга предоставляет обзор основных вопросов, позволяя вам обновить и проверить свои знания. Здесь вы найдете не просто ответы, а инструменты и стратегии для уверенного прохождения собеседований по JavaScript.
Кроме того, это руководство будет полезно для тех, кто хочет освежить свои знания или разобраться в непонятных для себя особенностях языка. Вы найдете здесь не только ответы на типичные вопросы, но и разъяснения сложных концепций, часто встречающихся на собеседованиях. Практические примеры и подробные объяснения помогут вам не только запомнить ключевые моменты, но и понять, как их эффективно применять в реальных проектах.
JavaScript: Ответы на вопросы
1. Что такое JavaScript?
JavaScript – это высокоуровневый, объектно-ориентированный язык программирования, который используется для создания интерактивных веб-страниц. Он позволяет добавлять различные функциональные возможности на сайты, взаимодействовать с пользователем, обрабатывать данные, анимировать элементы и многое другое. JavaScript является одним из основных инструментов веб-разработки и используется во множестве современных веб-проектах.
2. Как объявить переменную в JavaScript?
Для объявления переменной в JavaScript используются операторы let, const, и (устаревший) var.
let x = 5; // объявление переменной x с помощью let
const PI = 3.14159; // объявление константы PI с помощью const
var y = "Пример"; // объявление переменной y с помощью var
3. Чем отличаются let, const и var?
· var является устаревшим методом объявления переменных, он был использован до появления let и const;
· let используется для объявления переменных, значения которых могут изменяться;
· const используется для объявления констант, то есть переменных, значения которых не могут быть изменены после инициализации.
Например:
let count = 10;
count = 20; // Допустимо для let
const PI = 3.14159;
PI = 3; // Недопустимо для const, приведет к ошибке
Кроме того, существуют отличия в области видимости между var, let и const в JavaScript:
· var: Переменные, объявленные с помощью var, имеют функциональную область видимости (function scope). Это означает, что они видны только в функции, в которой были объявлены.
· let и const: Они имеют блочную область видимости (block scope), что означает, что они видны только внутри блока, в котором были объявлены (обычно это блоки кода в фигурных скобках, такие как условия if, циклы for, функции и другие).
Это означает, что переменная, объявленная с помощью var, может быть видна внутри функции, но и за ее пределами, если она не является блочной. В то время как переменные, объявленные с помощью let и const, будут видны только внутри блока кода, в котором были определены.
4. Что такое тип данных undefined в JavaScript?
undefined – это специальное значение, которое получает переменная, если ей не было присвоено никакое значение.
Например:
let x; // переменная x имеет значение undefined
console.log(x); // Выведет: undefined
5. Какие методы у массивов в JavaScript?
Основные методы массивов в JavaScript включают push, pop, shift, unshift, map и reduce, filter. Они предоставляют различные способы изменения и обработки элементов в массиве.
Например:
let arr = [1, 2, 3];
arr.push(4); // добавляет элемент в конец массива
arr.pop(); // удаляет последний элемент массива
arr.map(item => item * 2); // создает новый массив, умножая каждый элемент на 2
6. Чем отличаются замыкания (closures) от обычных функций в JavaScript?
Замыкание (closure) – это функция, которая имеет доступ к переменным из внешней области видимости, даже после завершения выполнения внешней функции. Это позволяет сохранять доступ к переменным и использовать их внутри вложенной функции.
function outerFunction() {
let outerVariable = 'I am from the outer function';
function innerFunction() {
console.log(outerVariable); // innerFunction имеет доступ к outerVariable из внешней функции
}
return innerFunction;
}
const inner = outerFunction();
inner(); // Выведет: "I am from the outer function"
7. Что такое прототип в JavaScript? Какие механизмы наследования используются в JavaScript?
В JavaScript объекты могут иметь прототипы, из которых