Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

385
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!