Написан на HTML5, CSS, чистом JavaScript для ознакомления с языком
Осознанал, что я пытаюсь управлять логикой калькулятора через множество флагов (_zeroFirst, _action, _canDot и т. д.), что усложняет код и делает его хрупким, тяжело отслеживаемым и модернизируемым. Пришел к выводу, что нужно добавить состояния и избавиться от флагов:
- Убраны лишние флаги (_zeroFirst, _action, _canDot, _dotRealy и другие)
- Добавлена система состояний (State Machine)
- Благодаря системе состояний убраны все оставшиеся баги с воспроизведением анимаций и другие
- Упрощена логика обработки ввода
- Сохранена вся анимация и стили
- Убран счетчик набранных символов. Теперь все вычисляется от общего рабочего пространства
Еще одно крупное обновление добавило возможность смены темы калькулятора на ночью и светлую по нажатии на кнопку. А так же добавлен новый функционал:
- e
- µ
- sin
- deg
