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

174
Views
¿Cómo puedo ingresar un 0 o un valor vacío en el aviso y no dejar que la acción devuelta por este valor sea la misma que devuelta por el botón cancelar?

Estaba haciendo una calculadora simple con JavaScript y, después de terminarla, comencé a buscar algunas partes de mi código que podrían mejorarse. Había estado tratando de hacer que apareciera una alerta si se ingresaba el número 0 o vacío en el indicador y funcionaba, pero luego hice clic en el botón CANCELAR en el indicador y se produjo el mismo resultado. Mi pregunta es ¿cómo puedo cambiar el código a continuación para poder tener una salida para el valor 0 o vacío y otra para el botón CANCELAR?

 const operacao = Number( prompt( `Qual a sua operação hoje? 1 - Soma (+) 2 - Subtração (-) 3 - Multiplicação (*) 4 - Divisão (/) 5 - Potenciação (^) 6 - Raiz (*/) 7 - Logaritmo natural (log) 8 - Divisão inteira (resto) `, ["Digite aqui!"] ) );
 if (operacao == false) { if (confirm("Quer mesmo sair?") == true) { Window.close(); } else { calculadora(); } } else if (operacao < 1 || operacao > 8) { alert("Por favor, escolha um número que retorne uma operação!"); calculadora(); } else if (!operacao) { alert("Por Favor, digite um número válido!"); calculadora(); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Según los documentos de aviso , "si el usuario hace clic en el botón Cancelar, esta función devuelve nulo". Lo primero que debe hacer con el resultado de prompt es convertirlo en un Number . Number(null) === 0 , por lo que cuando el usuario presiona Cancelar, todas las condiciones se evalúan contra 0 .

Sin embargo, coaccionar inmediatamente a Number es algo incorrecto, porque está perdiendo información . Una vez que lo haya hecho, no hay forma de saber la diferencia entre Cancelar y escribir 0 . En su lugar, vamos a eliminar la coerción de la siguiente manera:

 const promptResult = prompt( `Qual a sua operação hoje? 1 - Soma (+) 2 - Subtração (-) 3 - Multiplicação (*) 4 - Divisão (/) 5 - Potenciação (^) 6 - Raiz (*/) 7 - Logaritmo natural (log) 8 - Divisão inteira (resto) `, ["Digite aqui!"] );

Luego, agregaremos una verificación externa a sus condicionales:

 if (promptResult === null) { // do whatever should happen when the user presses cancel } else { const operacao = Number(promptResult); // the rest of your code goes here ...

Además, tenga en cuenta según los documentos que Number("invalid number") === NaN , por lo que donde dice else if (!operacao) , es más claro (aunque no menos correcto) si marca explícitamente NaN , es decir, else if (operacao === NaN) .

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!