Какие проблемы возникают при коллизии имен

«Какие проблемы возникают при коллизии имен» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При коллизии имён в JavaScript могут возникать следующие проблемы:

  1. Переопределение переменных - если объявить переменную с тем же именем в той же области видимости, предыдущее значение будет потеряно:
let count = 10;
let count = 20; // Ошибка в strict mode
  1. Конфликты в глобальной области видимости - переменные, объявленные без let/const/var, попадают в window, что может перезаписать существующие свойства:
function = 42; // Перезапишет нативную функцию
  1. Конфликты в модулях - при импорте могут возникнуть коллизии имён экспортов:
import { Button } from 'library1';
import { Button } from 'library2'; // Конфликт имён
  1. Конфликты CSS классов - одинаковые имена классов в разных файлах стилей могут переопределять друг друга.

Для избежания проблем используйте:

  • Локальные области видимости (блоки, модули)
  • Уникальные префиксы для классов/идентификаторов
  • Именованные импорты (import { Button as LibButton })
  • CSS-методологии (BEM, CSS Modules)