Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

148
Vistas
JS - ¿Por qué obtengo un NaN?

Estoy comenzando pequeños proyectos con javascript y no estoy seguro de por qué estoy bloqueado ahora.

Estoy tratando de construir una calculadora con el poco conocimiento que tengo (que es casi nada). Por ahora, estoy tratando de trabajar solo con números enteros. ¡Veré los números flotantes más tarde!

Con mi código, logro mostrar lo que escribo (por ejemplo, para "1 + 5" obtengo "1" y luego "5"), pero cuando presiono el botón "igual", aparece "NaN". Sé que significa Not A Number, y creo que podría estar enfrentando un problema de tipo.

Así que probé en varias partes de mi código algo de "console.log(myVariables)" o hice pruebas con "type of". Creo que logré encontrar en qué punto obtengo un "NaN", pero no puedo resolver el problema.

Aquí está mi código, hasta ahora, con comentarios para que puedas seguir mi lógica. :)

 //here I target my buttons numberOne.addEventListener('click', function() {screen.innerHTML += 1;}); numberTwo.addEventListener('click', function() {screen.innerHTML += 2;}); numberThree.addEventListener('click', function() {screen.innerHTML += 3;}); //... and so on for all different numbers and signs ... //I initialize my variables let firstNumber = ""; let secondNumber = ""; //I create an event for my "plus" and "equal" button plusSign.addEventListener('click', add); equalSign.addEventListener('click', equals); //with this I'm clearing the output screen between two inputs ("firstNumber" and "secondNumber") function clear() { screen.innerHTML = "" ; } //I memorize the HTML value of the output screen in "firstNumber", //I convert it into an integer, //then I clear the output screen function add() { firstNumber = parseInt(screen.innerHTML); clear(); } //I memorize the current value on the screen and convert it into an integer too function equals() { secondNumber = parseInt(screen.innerHTML); screen.innerHTML = firstNumber + secondNumber; }

Ahora, "primerNúmero" y "segundoNúmero" deberían ser números enteros, ¿no?

Traté de "parseInt" en varias partes del código, pero al final parece que el problema sigue siendo el mismo.

Sé que hay muchos ejemplos de código en Internet para un proyecto de este tipo, mucho más sofisticado, pero realmente estaba tratando de pensar por mi cuenta. Tal vez es que he estado haciendo las cosas mal. O tal vez solo necesito dejar de buscar la respuesta y volver a intentarlo mañana con la mente despejada. ^^'

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda