Saltar al contenido

La mejor manera de prevenir / manejar la división por 0 en javascript

Solución:

No hay forma de hacer eso con lo normal. / y /= operadores.

La mejor forma de hacer lo que quiere es con los guardias:

function notZero(n) {
  n = +n;  // Coerce to number.
  if (!n) {  // Matches +0, -0, NaN
    throw new Error('Invalid dividend ' + n);
  }
  return n;
}

y luego hacer división como

numerator / notZero(denominator)

Alternativamente, siempre puede proteger la salida

function dividend(numerator, denominator) {
  var quotient = numerator / denominator;
  if (quotient !== quotient) { throw new Error(numerator + "https://foroayuda.es/" + denominator); }
  return quotient;
}

pero que pierde la legibilidad y expresividad de /=.

Desde lo alto de mi cabeza podrías:

  1. Verifique la entrada del usuario para ver si el denominador es cero (o se evalúa como cero, dependiendo de lo que haga realmente su secuencia de comandos).
  2. Compruebe si el resultado de la acción isFinite() y si no, maneje apropiadamente.

¿Cuál sería la mejor manera de manejar tal situación para no evitar que se ejecuten otros scripts?

La división por cero no parece evitar la ejecución de otros scripts en JavaScript:

var a = 20;
var b = 0;
var result = a/b;
console.log(result); // returns Infinity

Si desea que suceda algo diferente en caso de división por cero, puede usar

function divideIfNotZero(numerator, denominator) {
  if (denominator === 0 || isNaN(denominator)) {
        return null;
  }
  else {
        return numerator / denominator;
  }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *