Olá Lucas, tudo bom?
Então, vendo o teu problema, eu separei algumas soluções, veja bem:
1 - Encapsulando esta função numa função de maior escopo e executando de maneira assíncrona.
2 - Armazenando estas informações em variáveis ou num objeto externo ao do bloco da função (escopo global).
3 - Criando uma nova função que receba como parâmetro as informações, para então manipular chamando-a ao final da validação.
Vou deixar um exemplo bem simplificado com os conceitos básicos veja este exemplo:
(Neste exemplo temos: "arrow function" e "manipulação de objetos")
<meta charset="UTF-8">
<button id="botaoValidar" onClick="validar()">Validar!</button>
<script>
const validar = () => {
var nome = 'NomeTeste';
var email = 'EmailTeste';
var telefone = 'TelefoneTeste';
if (nome == "" || email == "" || telefone == "") {
alert("Por favor preencha todos os campos")
form.nome.focus();
return false;
}
var informacoes = {
Nome : nome,
Email : email,
Telefone : telefone,
Informacao1 : "1",
Informacao2 : "2",
Informacao3 : "3"
}
TratarMensagem(informacoes);
}
const TratarMensagem = (_informacoes) => {
console.log("O nome do cidadão é : " + _informacoes.Nome);
console.log("O email do cidadão é : " + _informacoes.Email);
console.log("O telefone do cidadão é : " + _informacoes.Telefone);
console.log("Informação 1 do cidadão : " + _informacoes.Informacao1);
console.log("Informação 2 do cidadão : " + _informacoes.Informacao2);
console.log("Informação 3 do cidadão : " + _informacoes.Informacao3);
}
</script>