JavaScript · Senior · Запитання 35 з 75

Що може статися за циклічної залежності ES-модулів?

// a.js
import { b } from "./b.js";
export const a = "A" + b;
// b.js
import { a } from "./a.js";
export const b = "B" + a;

Пояснення

Модулі виконуються в порядку графа; за циклу один із них почне виконуватися, коли експорт іншого ще в TDZ. Із var вийшло б undefined, із const/let/класами - помилка. Рішення - винести спільний код у третій модуль або звертатися до імпорту ліниво всередині функцій.

Де почитати

Помилка в запитанні

JavaScript · Senior · запитання 35

Перевірте себе

Пройдіть тест JavaScript · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест