Oi Alessandra, Tudo bem?
Olha só.. sem o teu código completo não dá pra te ajudar mais especificamente porém observei alguns detalhes no teu código que podem ser corrigidos e talvez te entregue o que você está buscando.
Primeiramente você precisa incluir o sinal de atribuição na var campos...
// de:
var campos[ document.querySelector("#data"), document.querySelector("#quantidade"), document.querySelector("#valor") ];
// para:
var campos = [
document.querySelector("#data"),
document.querySelector("#quantidade"),
document.querySelector("#valor"),
];
Após essa alteração peço que você altere alguns detalhes de letras maiúsculas (sim.. isso importa muito.. os métodos tem que ser chamados da forma que foram implementados).
// de:
event.PreventDefault()
tdVolume.TextContent = campos[1].value * campos[2].value;
tr.AppendChild(tdVolume);
tbody.AppendChild(tr);
// para:
event.preventDefault()
tdVolume.textContent = campos[1].value * campos[2].value;
tr.appendChild(tdVolume);
tbody.appendChild(tr);
Se você deixar o preventDefault() com o P maiúsculo a página irá recarregar toda vez que vc clicar no botao e isso fará voce perder seus dados nas variáveis. Troque para p minusculo, no inicio, que irá parar esse refresh e começará a renderizar os dados na tela.
Espero ter ajudado.
Caso não consiga, peço que coloque o código inteiro para verificarmos.
Abs.