Cuando ejecuto 'null' != null, devuelve verdadero. No entiendo por qué sucede esto.

Si ejecuto 1 != '1' da retornos falsos, lo cual es correcto porque verifica el valor.

Pero, ¿por qué 'null' != null devuelve verdadero?

2
Kiwi Rupela 5 mar. 2018 a las 09:33

4 respuestas

La mejor respuesta

Larga historia

https://www.w3schools.com/js/js_comparisons.asp

Historia corta null vs int o string siempre falso, si no asigna un valor a int o string puede ser null

Entonces 'null' es un string con un valor de 'null' y null es un null por lo que no son iguales.

0
Tarek.Eladly 5 mar. 2018 a las 06:42

... null expresa una falta de identificación, lo que indica que una variable no apunta a ningún objeto.

Fuente

La cadena 'null' es un objeto, por lo que no es null, lo que representa la falta de un objeto.

4
Kevin 5 mar. 2018 a las 06:37

enter image description here

Aquí hay una imagen en la que puede obtener ideas sobre verificación de tipos e igualdad

0
Dhaval Umraliya 5 mar. 2018 a las 06:50

La respuesta de Kevin es correcta, sin embargo, puede obtener una explicación más detallada de cómo se determina la comparación aquí:

http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3

No hay ninguna instancia en la que un lado de la condición sea nulo en las especificaciones que requieren que se convierta el otro lado. Sin embargo, si un lado de la condición es un número, hay una especificación para convertir el otro lado a un número.

0
Anthony L 5 mar. 2018 a las 06:41