Hablemos de indefinido primero:
Las variables en JavaScript son de tipo débil, por lo que al declarar variables, solo necesita usar la palabra clave VAR. Si se trata de un lenguaje fuertemente tipado como C, si el valor inicial no se especifica al declarar una variable, se le dará un valor predeterminado, como el valor predeterminado de la variable int es 0. Pero en lenguajes de tipo débil como JavaScript, no hay forma de determinar qué tipo de valor predeterminado se debe dar a tal variable, por ejemplo, declaro una variable variable
var v1;
¿Le está dando falso o 0, o ''?
Debido a que no hay tipo, es imposible de determinar. En JavaScript, para esta variable que no tiene un valor inicial después de la vida, dale un indefinado. Sin embargo, la premisa es que esta variable debe declararse, y se producirá un error si no se declara para un identificador. Consulte el código a continuación.
Vo = "Vo"; // Cree una variable global sin usar la palabra clave VAR. Si no asigna un valor, se informará un error. Como se muestra en el siguiente
// v1; // Habrá un error
var v2; // desactivado
var v3 = ""; // nulo
alerta (vo);
// alerta (v1); //
alerta (v2);
alerta (v3);
Hablemos de NULL:
JavaScript tiene varios tipos básicos, número, cadena, booleano y objeto. Hay dos situaciones para variables del tipo de objeto. Una es que es una instancia de un objeto, y el otro es una referencia vacía nula. Los amigos que están familiarizados con los idiomas orientados a objetos como Java deben entenderse fácilmente. Para ambos casos, su tipo es objeto. Solo cuando se les asignan las variables en JavaScript
Determinará su tipo, como a continuación.
El código es el siguiente:
var v1 = 1; var v2 = true; alerta (typeOf v1); // Número alerta (typeof v2); // boolean v2 = new Date (); alerta (typeof v2); // objeto v2 = "str"; alerta (typeof v2); // String v2 = null; alerta (typeof v2); //objeto
Como puede ver, NULL representa un valor de tipo de objeto especial en JavaScript, que se utiliza para representar el concepto de referencia nula. Si un identificador se declara como tipo de objeto, pero no se le da una instancia por el momento, entonces se puede inicializar como nulo para su uso posterior.
No es necesariamente absolutamente correcto. En pocas palabras, para todas las variables, siempre que el valor inicial no se especifique después de la declaración, no está definido. Si el tipo de objeto se usa para representar el concepto de referencia nula, se expresa por NULL.
Aquí hay algunas adiciones:
NULL: significa que no hay valor;
Undefinado: indica una variable no declarada, o una variable que se ha declarado pero que no se ha asignado, o una propiedad de objeto que no existe. El operador == trata los dos como iguales. Si desea distinguir entre los dos, use el operador === o typeof. Ambos están incluidos con if (! Object) {}.