JS JavaScript  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Условия, циклы и управление выполнением

Задания требуют проследить ветвления и циклы, заметить fall-through в switch, различить for...in и for...of, понять действие меток и увидеть случаи, где привычный return внутри callback не останавливает внешний обход.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 20 вопросов и 55 минут; код лучше читать построчно, не полагаясь на первое впечатление. После завершения откроются общий процент, 4 тематических шкал и объяснение каждого решения.
Вопрос 1 из 20
Какая ветвь switch сработает для строкового значения "1"?
JavaScript
const value = "1";
switch (value) {
  case 1: console.log("number"); break;
  case "1": console.log("string"); break;
  default: console.log("default");
}
Вопрос 2 из 20
Какой вывод получится из-за отсутствия break?
JavaScript
const mode = "read";
switch (mode) {
  case "read":
    console.log("read");
  case "write":
    console.log("write");
    break;
  default:
    console.log("unknown");
}
Вопрос 3 из 20
Что окажется в result?
JavaScript
const n = 2;
const result = n === 0 ? "zero" : n > 0 ? "positive" : "negative";
console.log(result);
Вопрос 4 из 20
Нужно выполнить тяжёлую проверку только для активного пользователя. Какое условие действительно использует короткое замыкание?
Вопрос 5 из 20
Почему запись if (status = "ready") опасна?
Вопрос 6 из 20
Какие ключи массива напечатает цикл for...in?
JavaScript
const items = ["a", "b", "c"];
for (const key in items) {
  console.log(key);
}
Вопрос 7 из 20
Какой массив получится после цикла?
JavaScript
const values = [1, 2, 3];
for (let i = 0; i < values.length; i++) {
  if (values[i] < 3) values.push(values[i] + 3);
}
console.log(values);
Вопрос 8 из 20
Сколько раз выполнится тело do...while и что попадёт в журнал?
JavaScript
let i = 0;
do {
  console.log(i);
  i++;
} while (i < 0);
Вопрос 9 из 20
Какой цикл лучше всего выражает обход значений и допускает await внутри тела?
Вопрос 10 из 20
В каком случае while предпочтительнее обычного for?
Вопрос 11 из 20
На какой паре остановится помеченный внешний цикл?
JavaScript
outer:
for (let i = 1; i <= 2; i++) {
  for (let j = 1; j <= 2; j++) {
    console.log(i, j);
    if (i === j) break outer;
  }
}
Вопрос 12 из 20
Какие пары попадут в result?
JavaScript
const result = [];
outer:
for (let i = 1; i <= 2; i++) {
  for (let j = 1; j <= 2; j++) {
    if (j === 2) continue outer;
    result.push(`${i}:${j}`);
  }
}
console.log(result);
Вопрос 13 из 20
Какое значение вернёт pick после break внутри switch?
JavaScript
function pick() {
  for (let i = 0; i < 3; i++) {
    switch (i) {
      case 1: break;
      case 2: return i;
    }
  }
}
console.log(pick());
Вопрос 14 из 20
Нужно пропускать битую запись, но продолжать обработку остальных. Какой оператор подходит внутри цикла?
Вопрос 15 из 20
Почему return внутри callback forEach не прекращает внешний обход?
Вопрос 16 из 20
Сколько вызовов callback выполнит map для разреженного массива?
JavaScript
let calls = 0;
const data = [1, , 3];
data.map(value => {
  calls++;
  return value * 2;
});
console.log(calls);
Вопрос 17 из 20
Посетит ли forEach элементы, добавленные после начала обхода?
JavaScript
const values = [1, 2];
values.forEach(value => {
  console.log(value);
  if (value === 1) values.push(3, 4);
});
Вопрос 18 из 20
Что вернёт выражение?
JavaScript
console.log([].every(x => x > 0));
Вопрос 19 из 20
Нужно найти первый подходящий элемент и прекратить проверку. Какой метод лучше передаёт намерение?
Вопрос 20 из 20
Почему уменьшение array.length во время индексного цикла требует особой осторожности?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу