Las palabras anteriores
En lenguajes de programación general, solo NULL significa vacío, pero el diseñador de JavaScript Brendan Eich diseñó un indefinido, que sin duda aumenta la complejidad del programa, pero hay una cierta razón para hacerlo. Este artículo introducirá en detalle indefinido y nulo en JavaScript.
Razones históricas cuando JavaScript nació en 1995, como Java, solo NULL se estableció como un valor que indica "Ninguno". Según la tradición del lenguaje C, NULL está diseñado para recurrir automáticamente a 0
Sin embargo, el diseñador de JavaScript, Brendan Eich, piensa que esto no es suficiente, por dos razones. Primero, NULL se trata como un objeto como en Java. Sin embargo, los valores de JavaScript se dividen en dos categorías: tipos primitivos y tipos de objetos. Brendan Eich cree que el valor que significa "ninguno" es mejor, no un objeto. En segundo lugar, la versión inicial de JavaScript no incluía un mecanismo de manejo de errores. Cuando se produce un desajuste del tipo de datos, a menudo convierte automáticamente el tipo o falla en silencio. Brendan Eich piensa que si NULL se convierte automáticamente en 0, es difícil encontrar errores
Por lo tanto, Brendan Eich diseñó otro indefinado. Lo distingue así: NULL es un objeto que representa "ninguno", que es 0 cuando se convierte en un valor numérico; Undefined es un valor original que representa "ninguno", que es nan cuando se convierte en un valor numérico
Sin embargo, actualmente nulo y indefinido son básicamente sinónimos, ambos son tipos primitivos, y solo hay algunas ligeras diferencias.
El tipo UndefinedEndefined tiene solo un valor, que está indefinido. Cuando la variable declarada no se inicializa, el valor predeterminado de la variable no está definido. Entonces, en general, indefinido significa que la variable no se inicializa
test test; // undefinedconsole.log (test == Undefined); // truevar test = undefined; // undefined
Para las variables que no se han declarado, solo se puede realizar una operación, utilizando el operador de tipos de tipos para detectar sus tipos de datos, pero causará un error en modo estricto
typeof (prueba); // indefinido
【Apariencia de la escena】
【1】 Variables no valoradas declaradas
【2】 Obtenga los atributos que no existen en el objeto
【3】 Resultado de ejecución de la función sin valor de retorno
【4】 Los parámetros de la función no se pasan en
【5】 Void (expresión)
var i; console.log (i); // undefinedvar o = {}; console.log (op); // UndefinedFunction f () {}; console.log (f ()); // undefinedfined f (x) {return x;} console.log (f ()); // odefinedconsole【Conversión de tipo】
Boolean (indefinido): Falsenumber (indefinido): Nantstring (indefinido): 'Undefinado'
nulo
Solo hay un valor para el tipo nulo, que es nulo. NULL es una palabra clave en el idioma JavaScript. Representa un valor especial y a menudo se usa para describir el "valor nulo".
Lógicamente, el valor nulo representa un puntero de objeto vacío
[Nota] NULL es un puntero de objeto vacío, mientras que [] es una matriz vacía, {} es un objeto vacío, los tres son diferentes
console.log (typeof null); // 'objeto'
Aunque nulos y indefinidos son diferentes, ambos representan "vacío de valor", NULL representa "valor nulo" y indefinido representa "indefinido". Los dos a menudo son intercambiables. Juez Operador de igualdad == Piense que los dos son iguales
console.log (nulo == Undefined); // Verdadero
De hecho, debido a que indefinido y nulo no son tipos de constructor, no tienen ninguna propiedad y método. Usando . y [] acceder a miembros o métodos de ambos valores producirá un error de tipo.
【Conversión de tipo】
Boolean (NULL): Falsenumber (NULL): 0String (NULL): 'NULL'
El artículo anterior sobre el sistema de tipo JavaScript: indefinido y nulo es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.