<input type="text" disabled>
<div id="buttons"></div>
const commands = '0123456789+-*/='.split('');

const el = {
  input: document.querySelector('input'),
  btns: document.getElementById('buttons'),
};

let buffer = [];

const update = cmd => {
  if (!commands.includes(cmd)) return;
  const last = buffer.pop();
  if (!(commands.indexOf(last) >= 10 && commands.indexOf(cmd) >= 10)) {
    buffer.push(last); // вернуть последний на место
  }
  buffer.push(cmd); // добавить введённую команду
  el.input.value = buffer.join('');
};

commands.forEach(cmd => {
  const btn = document.createElement('button');
  btn.type = 'button';
  btn.innerText = cmd;
  btn.addEventListener('click', () => update(cmd));
  el.btns.appendChild(btn);  
});

document.addEventListener('keydown', event => {
  const { key } = event;
  if (commands.includes(key)) update(key);
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.