Tales cosas básicas ya no deben grabarse, pero, revisando el pasado y aprendiendo las nuevas primero. Comencemos con el tipo de datos.
JS seis tipos de datos principales: número, cadena, objeto, booleano, nulo, indefinido
Cadena: explicado por citas simples o dobles, como "cadena"
Número: qué números enteros, de puntos flotantes se llaman números, ya sabes ~
Booleano: eso es cierto y falso
Undefinado: Undefinado, es decir, crea una variable pero no le asignas un valor ~
NULL: Por lo tanto, se llama Sijiu. nulo no significa nada, nada significa nada
Objeto: Soy difícil de explicar esto. Es el tipo que no sea los cinco anteriores
---------------------------------------------------------------------------------------------------
Juicio de tipos de datos typeOf
TypeOf puede resolver la mayoría de los juicios de tipo de datos. Es una operación de unión. Antes de un valor de operación, su valor de retorno es una cadena. Esta cadena indica el tipo de número de operación. Por lo tanto, if (typeof (su valor) == "cadena") {}
Aquí están los resultados devueltos por varios tipos de datos:
var a = "cadena"; console.log (a); // stringvar a = 1; console.log (a); // numberVar a = false; console.log (a); // booleanvar a; console.log (typeOf a); // Undfinedvar a = null; console.log (typeOf a); // ObjectVar a = documento; console.log (typeOf a); // ObjectVar a = []; console.log (a); // ObjectVar a = function () {}; console.log (typeOf a) // función Además de juzgar los tipos de datos, también puede juzgar los tipos de funcionesEsto es obvio. Excepto por los primeros cuatro tipos, NULL, Object y Array Devuelve todos los tipos de objetos;
Para los tipos de funciones, se devuelve la función, como typeof (fecha), typeof (eval), etc.
Luego, aquí podemos extender otro problema que es muy popular y la solución ya es común. ¿Cómo determinar si los datos son un tipo de matriz?
---------------------------------------------------------------------------------------------------
Método JS para determinar el tipo de matriz
Método 1 instancia de
instancia, por lo tanto, el nombre significa, instancia, ejemplo. Por lo tanto, InstanceOf se usa para determinar si una variable es una instancia de un objeto. Es una fórmula de operación tridimensional, la diferencia más sustancial entre los typyOf
una instancia de b? Alert ("verdadero"): alerta ("falso") // Tenga en cuenta que el valor B es el tipo de datos que desea juzgar, no una cadena, como la matriz
Toma una castaña:
var a = []; console.log (una instancia de matriz) // return true
Constructor del método 2
Definición en W3C Definición: la propiedad del constructor Devuelve una referencia a la función de matriz que creó este objeto
Devuelve el constructor correspondiente al objeto. En la definición, no es muy consistente con el instancia, pero los efectos son los mismos
Por ejemplo: (una instancia de matriz) // a ¿Es una instancia de matriz? Verdadero o falso
(A.Constructor == Array) // ¿El constructor corresponde a la instancia A correspondiente a la matriz? Verdadero o falso
Toma una castaña:
Function Employee (nombre, trabajo, nacido) {this.name = name; this.job = trabajo; this.born = nacido;} var bill = new Employee ("Bill Gates", "Ingeniero", 1985); console.log (bill.constructor); // Función de salida Empleado (nombre, Jobtitle, Born) {this.name = name; this.Jobtitle = Job; this.born = nacido;}Entonces el método para juzgar varios tipos es:
console.log ([]. constructor == array); console.log ({}. constructor == objeto); console.log ("string" .constructor == string); console.log ((123) .constructor == número); console.log (true.constructor == boolean);---------------------------------------------------------------------------------------------------
Un método más riguroso y general:
function isArray (objeto) {return object && typeOf Object === 'Object' && Array == Object.Constructor;}! ! Aviso:
¡Usando instancia y constructor, la matriz juzgada debe declararse en la página actual! Por ejemplo, una página (página principal) tiene un marco, se hace referencia a una página (subpage) en el marco, se declara una matriz en la página del niño y la asigna a una variable de la página principal. En este momento, se juzga la variable, Array == Object.Constructor; devolverá falso;
razón:
1. La matriz es un datos de referencia. Durante el proceso de transmisión, es solo una transferencia de la dirección de referencia.
2. La dirección a la que se hace referencia el objeto nativo de la matriz de cada página es diferente. El constructor correspondiente de la matriz declarado en la página del niño es el objeto de matriz de la página del niño. Para el juicio en la página principal, la matriz utilizada no es igual a la matriz de la página del niño; ¡Recuerde, de lo contrario será difícil rastrear el problema!
Método 3: Método de evaluación de características
Todos los métodos anteriores tienen ciertos defectos, pero debemos creer que la sabiduría de las masas es omnipotente. Podemos juzgar su tipo en función de algunas características de la matriz.
function isArray (objeto) {return Object && typeOf Object ==== 'Object' && typeof Object.length === 'Number' && typeof Object.splice === 'function' && // Simplemente determinar si la propiedad de longitud es enumerable para matrices, se obtendrá falso! (Object.PropertyiseMerable ('longitud');}Tener longitud y empalme no es necesariamente una matriz, porque el factor de juicio más importante es agregar atributos a los objetos, pero no enumerando los atributos de longitud.
PD: Aquí popularizamos el método PropertyIsenumerable:
objeto. PropertyIsenumerable (proname)
Determinar si el atributo especificado se puede enumerar
NOTA: Si el pronombre existe en un objeto y se puede enumerar exhaustivamente usando un para ... en bucle, la propiedad PropertyIseNUmerable devuelve verdadero. Si el objeto no tiene la propiedad especificada o la propiedad especificada no es enumerable, la propiedad PropertyIsEnumerable devuelve falso.
La propiedad PropertyIsenumerable no tiene en cuenta los objetos en la cadena prototipo.
Ejemplo:
var a = nueva matriz ("manzana", "plátano", "cactus"); document.write (a.propertyisenumerable (1));Método 4 El método más fácil
función isarray (o) {return object.prototype.ToString.call (o) === '[Array de objetos]';}Lo anterior es todo el contenido de este artículo. Para obtener más información sobre JavaScript, puede consultar: "Tutorial de referencia de JavaScript" y "Guía de estilo de código JavaScript". También espero que todos apoyen más a Wulin.com.