nulo: significa sin valor;
indefinido: representa una variable no declarada,
o una variable declarada pero no asignada un valor,
O una propiedad de objeto que no existe.
El operador == trata a los dos como iguales. Si desea distinguir entre los dos, utilice el operador === o typeof.
————————————-La línea divisoria de la oscuridad——————————————-
En JavaScript, nulo e indefinido alguna vez fueron confusos. El siguiente análisis le ayudará a comprenderlo más claramente (o a confundirlo más):
- nulo es una palabra clave; indefinido es una propiedad del objeto global
- nulo es un objeto (objeto vacío, sin propiedades ni métodos indefinidos); un valor de tipo indefinido. Pruebe el siguiente código:
document.writeln(typeof null //return object);
document.writeln(typeof indefinido); //return indefinido- En el modelo de objetos, todos los objetos son instancias de Object o sus subclases, con la excepción de los objetos nulos:
document.writeln(nullstanceof Object //return false- null); "Valor igual (==)" a indefinido, pero no "valor congruente (===)" a indefinido:
document.writeln(null == indefinido);
document.writeln(null === undefinido); //return false- Tanto null como undefinido se pueden convertir a falso durante la operación, pero no son iguales a falso:
document.writeln(!null, !undefinido); devolver verdadero, verdadero
document.writeln(null==false); //devuelve falso
document.writeln(undefinido==false); //devuelve falso