В интерпретируемых языках, подобных JavaScript, внутри файлов можно писать любой код: определения функций, вызовы функций, определения и изменения переменных. Такая свобода очень упрощает всю разработку.
С другой стороны, при неаккуратной разработке появляются ошибки, значительно усложняющие код и его поддержку. CEO Хекслета Кирилл Мокевнин подробно рассказывает, почему эти ошибки часто встречаются в продакшен коде и как не допустить их появление. Эти проблемы не специфичны для JavaScript, то же самое встречается и во многих других интерпретируемых языках, таких как Python, Ruby или PHP Подробнее о разнице между модулями и скриптами можно прочитать в статье. Здесь же мы сосредоточимся на неверно спроектированных модулях. Предположим, что у нас есть модуль index.js с таким содержимым: export const pi = '3.14';
Где-то в других местах программы он импортируется и используется. Как правило, импорт подобных модулей происходит не в одном месте, а в разных местах программы. // Где-то в одн