es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿NaN siempre es un valor falso en Javascript?

console.log(typeof 3/0, Boolean(3/0)); // Esto devuelve NaN true
console.log(typeof 0/0, Boolean(0/0)); // Esto devuelve NaN false

Pensé que ambos devolverían NaN false en la consola ya que NaN es un valor falsy. Pero esto no está sucediendo. ¿Alguien puede explicar esto, por favor?

Utilicé el editor VS Code y el navegador Google Chrome.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En el fragmento de código dado, hay dos instrucciones console.log. La primera instrucción registra el resultado de typeof 3/0 y Boolean(3/0), que devuelve Infinity como tipo y true como valor booleano. La razón de esto es porque cuando se divide 3 por 0, el resultado es infinito, que es un valor numérico válido, por lo tanto, el valor booleano es true.

    La segunda instrucción registra el resultado de typeof 0/0 y Boolean(0/0), que devuelve NaN como tipo y false como valor booleano. La razón de esto es porque cuando se divide 0 por 0, el resultado es NaN (No es un Número), que no es un valor numérico válido, por lo tanto, el valor booleano es false.

    En cuanto a la pregunta original, NaN es de hecho un valor falsy en JavaScript, pero puede tener un valor truthy cuando se utiliza en ciertos contextos, como en operaciones matemáticas donde puede dar lugar a valores inesperados como Infinity. Por lo tanto, es importante ser consciente de los diferentes tipos y valores que JavaScript puede tener, especialmente en situaciones donde puede ocurrir coerción de tipos.

Comments are closed.