Хранение булевых значений в битах числа


Исходный код

val=(chb.checked?val|VAR_ID:val&~VAR_ID);

Что не так в этом коде

  • сильно сниженная читаемость
  • повышенный риск багов

Подобная экономность хороша на встроенных системах с 1 кб ОЗУ. Не могу представить, чтобы в современных условиях в браузере подобный приём мог дать хотя бы просто заметную экономию ресурсов.

Возможно, выгода ожидалась от чего-то другого, например от передачи всех флагов состояния разом (типа сохранения и восстановления настроек). Но и этот вопрос легко решаем с помощью объекта — и в гораздо более наглядном виде.

Теория

  • Ребусы в коде