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

июн. 25, 2018·
Денис Трофимов
Денис Трофимов
· 2 мин чтения
blog learning

В этом посте я рассказываю о некоторых основных вопросах и ответах на 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-системы, веб-автоматизированную обработку заказов и симуляции для эксплуатации железнодорожного подвижного состава.