Название: 100 вопросов на собеседование по JavaScript. С подробными объяснениями
Автор: Ирина Кириченко
Издательство: Издательские решения
isbn: 9785006204843
isbn:
function Animal(name) {
this.name = name;
}
// Добавляем метод в прототип объекта Animal
Animal.prototype.sayHello = function () {
console.log("Hello, my name is " + this.name);
};
// Создаем экземпляр объекта Animal
let cat = new Animal("Whiskers");
// Вызываем метод sayHello у объекта cat
cat.sayHello(); // Выводит "Hello, my name is Whiskers"
8. Что такое стрелочные функции (arrow functions) и в чём их особенность? Какие у них могут быть ограничения?
Стрелочные функции (arrow functions) отличаются от обычных функций тем, что не имеют своего собственного контекста this, используя контекст окружающего кода. Они также короче и автоматически возвращают значение, если оно записано в одну строку без использования фигурных скобок. Однако у стрелочных функций есть ограничения, например, они не могут быть использованы как конструкторы или иметь свои собственные методы 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 – это механизм, при котором переменные и функции "поднимаются" вверх своей области видимости перед тем, как код СКАЧАТЬ