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. ^^'