Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

390
Visualizações
La entrada es un número, pero se trata como una cadena. Cómo convertir para hacer una suma y usarla en un error Try and catch throw para verificar las entradas JavaScript

Necesito su ayuda para probar y capturar declaraciones y arrojar errores en un if/else, con la entrada del usuario. El problema es que "el bloque else" no se ejecuta. El objetivo principal es verificar si es un number para parseInt y luego usar los valores de entrada para una suma. Primero verifico si está empty , luego compruebo si es una letter or strings y luego verifico si es un number al final, en la instrucción else.

El problema es que la entrada siempre se trata como una cadena y nunca va a la instrucción else. ¿Cómo arreglar eso, una vez que todas las entradas son números?

Obs.: El bloque de captura y ambos errores de lanzamiento funcionan bien.

 window.onload = () => { const button = document.getElementById('button') button.addEventListener('click', verifyEntries) } function verifyEntries () { try { const value1 = document.getElementById('value1').value; const value2 = document.getElementById('value2').value; if (value1 === '' || value2 === ''){ // check if the input is empty throw new Error(' value 1 and value 2 must be filled !'); // **this line execute** } else if (typeof value1 !== 'number' && typeof value2 !== 'number'){ // check if is "alphabetical" throw new Error(' both values should be numbers'); // **this line execute**line 17 } else { // **this block does not executes - the input stays as strings** const result = parseInt(value1) + parseInt(value2); document.getElementById('result').innerHTML = `Resultado: ${result}`; // I get the error message line 17 } } catch (error) { alert('Atention! ' + error) } finally { document.getElementById('value1').value = '' document.getElementById('value2').value = '' } }
 <body> <p>Inform two numbers to sum:</p> <label for='value1'>Valor 1:</label> <input type='text' id='value1'> <label for='value2'>Valor 2:</label> <input type='text' id='value2'> <button id='button'>Sum</button> <p id='result'></p> <script src="script.js"></script> </body>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Gracias chicos por su ayuda. Después de buscar mucho en este sitio, encontré una buena alternativa, lo he comprobado y funciona bien. Echar un vistazo.

 window.onload = () => { const button = document.getElementById('button') button.addEventListener('click', verifyEntries) } function verifyEntries () { try { const value1 = Number(document.getElementById('value1').value); const value2 = Number(document.getElementById('value2').value); console.log(value1, value2); if (value1 == '' || value2 == ''){ // check if the input is empty throw new Error(' value 1 and value 2 must be filled !'); // this line execute } else if (isNaN(value1) || isNaN(value2)){ // check if is "alphabetical" throw new Error(' both values should be numbers'); // this line execute } else { // parseInt(value1) && parseInt(value2) - this line is not necessary. console.log(value1, value2); const result = (value1) + (value2); document.getElementById('result').innerHTML = `Resultado: ${result}`; // is working now } } catch (error) { alert('Atention! ' + error) } finally { document.getElementById('value1').value = '' document.getElementById('value2').value = '' } }

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda