Opa, talvez eu me expressei mal. Pode deixar o javascript no tabnews apenas formate legal com o markdown para ficar facil de ler :D no codepen ficou excellente mas tem gente que prefere ler no tabnews.
O seu codigo esta bem bacana, bem melhor do que muita coisa que jah vi, parabens. Tem alguns pontos que pode melhorar principalmente na repeticao. Por exemplo:
Este treixo:
const idsNumeros = {
num0: document.querySelector("#num0"),
num1: document.querySelector("#num1"),
num2: document.querySelector("#num2"),
num3: document.querySelector("#num3"),
num4: document.querySelector("#num4"),
num5: document.querySelector("#num5"),
num6: document.querySelector("#num6"),
num7: document.querySelector("#num7"),
num8: document.querySelector("#num8"),
num9: document.querySelector("#num9")
}
const adicionarNumeros = {
num0: function() {numeros.numeroVisor += "0"; formatar();},
num1: function() {numeros.numeroVisor += "1"; formatar();},
num2: function() {numeros.numeroVisor += "2"; formatar();},
num3: function() {numeros.numeroVisor += "3"; formatar();},
num4: function() {numeros.numeroVisor += "4"; formatar();},
num5: function() {numeros.numeroVisor += "5"; formatar();},
num6: function() {numeros.numeroVisor += "6"; formatar();},
num7: function() {numeros.numeroVisor += "7"; formatar();},
num8: function() {numeros.numeroVisor += "8"; formatar();},
num9: function() {numeros.numeroVisor += "9"; formatar();}
};
const imprimirNumeros = {
num0: idsNumeros.num0.addEventListener('click', adicionarNumeros.num0),
num1: idsNumeros.num1.addEventListener('click', adicionarNumeros.num1),
num2: idsNumeros.num2.addEventListener('click', adicionarNumeros.num2),
num3: idsNumeros.num3.addEventListener('click', adicionarNumeros.num3),
num4: idsNumeros.num4.addEventListener('click', adicionarNumeros.num4),
num5: idsNumeros.num5.addEventListener('click', adicionarNumeros.num5),
num6: idsNumeros.num6.addEventListener('click', adicionarNumeros.num6),
num7: idsNumeros.num7.addEventListener('click', adicionarNumeros.num7),
num8: idsNumeros.num8.addEventListener('click', adicionarNumeros.num8),
num9: idsNumeros.num9.addEventListener('click', adicionarNumeros.num9)
}
Pode ser substituido por algo assim:
for (let i=0; i<10; i++) {
const formatarVisor = () => {
numeros.numeroVisor += i;
formatar();
}
document.querySelector(`#num${i}`).addEventListener('click', formatarVisor)
}
Tem outras melhorias mas elas vao deixar o codigo totalmente diferente. Tem como melhorar a abstracao, eu percebi que voce agrupou elementos semelhantes em consts
por exemplo salvarOperacao
mais ao inves de agrupar elementos semelhantes seria legal se usarmos abstracoes. Normalmente aprendemos melhores abstracoes com experiencia por isso eu nao quiz mudar muito. Se eu tiver um tempinho hoje eu tento re-escrever o codigo para voce dar uma olhada.
Contudo, no genral esta muito bom.