Недавно писал...
https://jsfiddle.net/yfpagy7L/Он правда именно только "простые действия над двумя операндами" умеет и выражение 2+2*2 правильно не подсчитает - там всякие стеки нужны, обратная польская нотация... В общем муть полная.
Но есть часть того что просите - показывает введенное выражение под ответом, «сброс» (кнопка CE)
Также реализовать функционал «истории» (показывает введенное выражение под ответом) , «сброс» (кнопка CE) и запоминания последнего полученного значения.
html в картинке.
За ранее спасибо :)