Чем отличаются CSS-переменные от переменных в JS

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

Ответ

CSS переменные (--var-name) и JS константы (const) имеют ключевые различия:

  1. Область видимости
    CSS переменные работают в рамках DOM и наследуются по каскаду, JS константы — только в рамках скрипта.

  2. Типы значений
    CSS переменные всегда строки (даже числа), JS константы поддерживают любые типы.

  3. Динамическое изменение
    CSS переменные можно менять через JS и media-запросы, JS константы неизменяемы после объявления.

Пример:

:root {
  --main-color: #ff0000;
}
const MAIN_COLOR = '#ff0000';

CSS переменные лучше для стилей, JS константы — для логики приложения.