Простые вопросы по Javascript для интервью

В этом посте я рассказываю о некоторых основных вопросах и ответах на Javascript, которые я задал в ходе курса JavaScript LaunchPad от Simple Programmer.com.
В 2017 году я провел собеседование с тремя людьми на должность разработчика в компании, в которой работаю, ООО «Взор Системс».
Оказалось, что для подготовки к интервью со стороны интервьюера нужно приложить некоторые усилия. Если компания – не большой, а небольшой стартап, моя работа как интервьюера — придумывать вопросы и письменные тесты для проверки навыков и знаний кандидата. Однажды я искал типичные вопросы на собеседовании на должность разработчика C++.
Учитывая поле зрения интервьюера, я создал этот список вопросов, когда закончил первую **JavaScript LaunchPad **главу «Контексты выполнения и лексические среды».
Контекст выполнения – создание и подъем
Вопрос: Что этот код выдаёт на консоль?
b();
console.log(a);
var a = 'Hello World!';
function b() {
console.log('Called b!');
}
Ответ:
Called b!
Hello World!
Функции, контекст и переменная среда
Вопрос: Что этот код выдаёт на консоль?
function b() {
var myVar;
console.log(myVar);
}
function a() {
var myVar = 2;
console.log(myVar);
b();
}
var myVar = 1;
console.log(myVar);
a();
console.log(myVar);
Ответ:
1
2
1
1
Цепочка прицелов
Вопрос: Что этот код выдаёт на консоль?
function a() {
function b() {
console.log(myVar);
}
b();
}
var myVar = 1;
a();
b();
Ответ:
1
Uncaught ReferenceError: b is not defined
А как насчет асинхронных обратных вызовов
Вопрос: Что этот код выдаёт на консоль?
// long running function
function waitThreeSeconds() {
var ms = 3000 + new Date().getTime();
while (new Date() < ms){}
console.log('finished function');
}
function clickHandler() {
console.log('click event!');
}
// listen for the click event
document.addEventListener('click', clickHandler);
waitThreeSeconds();
console.log('finished execution');
Ответ:
finished function
finished execution
click event!

Архитектор ПО, Архитектор данных
Опытный разработчик ПО с опытом работы в стартапах, банках и отраслях вроде космоса и железных дорог.
- Инженер Go, Python, C++, C с 2006 года.
- Последние 3 года: инженерия платформ, создание внутренних порталов разработчиков (IDP) и сдвиг организаций влево в DevOps.
- Проектировал и строил автономные и клиент-серверные приложения с базами Oracle DB, PostgreSQL и MySQL.
- Разрабатывал CRM-системы, веб-автоматизированную обработку заказов и симуляции для эксплуатации железнодорожного подвижного состава.