JS JavaScript  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Модули и организация кода

Тест проверяет именованные и default-экспорты, живые связывания, строгий режим модулей, циклические зависимости и dynamic import. Архитектурные вопросы посвящены границам модулей, побочным эффектам и диагностике загрузки в браузере.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 25 вопросов и 70 минут; код лучше читать построчно, не полагаясь на первое впечатление. После завершения откроются общий процент, 5 тематических шкал и объяснение каждого решения.
Вопрос 1 из 25
Как импортировать именованный export sum?
JavaScript
// math.js
export function sum(a, b) { return a + b; }
Вопрос 2 из 25
Можно ли присвоить новое значение импортированному count?
JavaScript
import { count } from "./state.js";
count = 5;
Вопрос 3 из 25
Что увидит импортёр после вызова inc()?
JavaScript
// state.js
export let count = 0;
export function inc() { count++; }

// app.js
import { count, inc } from "./state.js";
inc();
console.log(count);
Вопрос 4 из 25
Какое утверждение о default export верно?
JavaScript
export default function format(value) {
  return String(value);
}
Вопрос 5 из 25
В каком режиме выполняется код ES-модуля?
HTML/XMLHTML
<script type="module" src="app.js"></script>
Вопрос 6 из 25
Какой модуль имеет более ясную границу?
Вопрос 7 из 25
Почему экспорт изменяемого внутреннего массива опасен?
JavaScript
// store.js
export const items = [];
// consumer.js
import { items } from "./store.js";
items.push("внешнее изменение");
Вопрос 8 из 25
Какое решение в этом фрагменте улучшает тестируемость предметного расчёта?
JavaScript
export function createOrderService(api) {
  return {
    async calculateTotal(orderId, taxRate) {
      const items = await api.loadItems(orderId);
      return items.reduce((sum, item) => sum + item.price, 0) * (1 + taxRate);
    }
  };
}
Вопрос 9 из 25
Какой риск у большого barrel-файла, реэкспортирующего весь раздел?
Вопрос 10 из 25
Когда отдельный модуль конфигурации превращается в скрытое глобальное состояние?
Вопрос 11 из 25
Почему цикл A↔B не всегда немедленно падает?
JavaScript
// a.js
import { callB } from "./b.js";
export function callA() { return "A"; }
export function run() { return callB(); }

// b.js
import { callA } from "./a.js";
export function callB() { return callA(); }
Вопрос 12 из 25
Что вероятнее произойдёт при раннем чтении const-экспорта в цикле?
JavaScript
// a.js
import { b } from "./b.js";
export const a = b + 1;

// b.js
import { a } from "./a.js";
export const b = a + 1;
Вопрос 13 из 25
Как надёжнее разорвать архитектурный цикл между domain и ui?
Вопрос 14 из 25
Почему функции в цикле иногда безопаснее немедленно вычисленных констант?
JavaScript
// a.js
import { getB } from "./b.js";
export const getA = () => getB() + 1;
Вопрос 15 из 25
Какой инструмент помогает обнаружить неожиданные циклы?
Вопрос 16 из 25
Что возвращает import("./feature.js")?
JavaScript
const modulePromise = import("./feature.js");
Вопрос 17 из 25
Сколько раз обычно выполняется один модуль при двух import() того же точного URL?
JavaScript
const first = import("./feature.js");
const second = import("./feature.js");
await Promise.all([first, second]);
Вопрос 18 из 25
Как получить именованный export open после dynamic import?
JavaScript
// Нужно загрузить ./dialog.js по требованию
// и получить именованный export open.
Вопрос 19 из 25
Когда dynamic import оправдан?
Вопрос 20 из 25
Что должен сделать интерфейс при отказе dynamic import?
JavaScript
try {
  const module = await import("./editor.js");
  module.mount(root);
} catch (error) {
  // Что уместно сделать здесь?
}
Вопрос 21 из 25
Браузер сообщает MIME type text/html для module script. Какая частая причина?
HTML/XMLHTML
<script type="module" src="/assets/app.js"></script>
Вопрос 22 из 25
Почему обычный <script src> не понимает import в файле?
HTML/XMLHTML
<script src="app.js"></script>
<!-- app.js содержит import { start } from "./start.js" -->
Вопрос 23 из 25
Почему импорт через file:// может вести себя иначе, чем на сайте?
Вопрос 24 из 25
Могут ли ./mod.js?v=1 и ./mod.js?v=2 считаться разными модулями?
Вопрос 25 из 25
Какой набор фактов собрать при ошибке загрузки import?

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

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

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

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