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

Функции, параметры и возвращаемые значения

В тесте нужно различать объявления и выражения функций, понимать вычисление параметров по умолчанию, rest и деструктуризацию, точно читать return и оценивать чистоту функции по её наблюдаемым эффектам.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 20 вопросов и 55 минут; код лучше читать построчно, не полагаясь на первое впечатление. После завершения откроются общий процент, 4 тематических шкал и объяснение каждого решения.
Вопрос 1 из 20
Доступно ли объявление square до строки function и что напечатает вызов?
JavaScript
console.log(square(2));
function square(x) {
  return x * x;
}
Вопрос 2 из 20
Чем закончится обращение к const square до инициализации?
JavaScript
console.log(square(2));
const square = x => x * x;
Вопрос 3 из 20
Можно ли вызвать стрелочную функцию Box через new?
JavaScript
const Box = value => ({ value });
const item = new Box(3);
Вопрос 4 из 20
Какое преимущество имеет именованное function expression в рекурсивной функции?
Вопрос 5 из 20
Для обработчика, который должен использовать this элемента, какой вариант обычно уместнее?
Вопрос 6 из 20
Какие значения получат параметры show при undefined и null?
JavaScript
function show(a = 1, b = 1) {
  console.log(a, b);
}
show(undefined, null);
Вопрос 7 из 20
Что выведут два вызова?
JavaScript
function add(item, list = []) {
  list.push(item);
  return list.length;
}
console.log(add("a"));
console.log(add("b"));
Вопрос 8 из 20
Что произойдёт при вызове f()?
JavaScript
function f(a = b, b = 1) {
  return a;
}
console.log(f());
Вопрос 9 из 20
Какое утверждение о rest-параметре верно?
Вопрос 10 из 20
В strict mode функция меняет параметр x. Что произойдёт с arguments[0]?
Вопрос 11 из 20
Как автоматическая вставка точки с запятой повлияет на makeResult?
JavaScript
function makeResult() {
  return
  { ok: true };
}
console.log(makeResult());
Вопрос 12 из 20
Какое значение будет выведено?
JavaScript
function read() {
  try {
    return 1;
  } finally {
    return 2;
  }
}
console.log(read());
Вопрос 13 из 20
Почему результат содержит undefined?
JavaScript
const result = [2, 3, 4].map(value => {
  if (value % 2 === 0) return value / 2;
});
console.log(result);
Вопрос 14 из 20
Что всегда возвращает вызов async-функции, даже если в теле написано return 5?
Вопрос 15 из 20
Функция поиска не нашла запись. Какой контракт обычно яснее всего отличает отсутствие результата от ошибки выполнения?
Вопрос 16 из 20
Какая функция является чистой при одинаковых входах?
Вопрос 17 из 20
Что произойдёт с исходным объектом?
JavaScript
function rename(data) {
  const copy = { ...data };
  copy.user.name = "Ира";
  return copy;
}
const source = { user: { name: "Анна" } };
rename(source);
console.log(source.user.name);
Вопрос 18 из 20
Что выведут три вызова?
JavaScript
function makeCounter() {
  let count = 0;
  return () => ++count;
}
const next = makeCounter();
console.log(next(), next(), next());
Вопрос 19 из 20
Почему передача clock.now как зависимости делает функцию удобнее для тестирования?
Вопрос 20 из 20
Когда мутация аргумента может быть приемлемой?

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

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

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

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