Hay seis tipos de datos comunes en js: tipo cadena, tipo nulo, tipo numérico, tipo booleano y tipo objeto.
1. Notas sobre el tipo de
Cuando se trata de tipos de datos, es inevitable mencionar el tipo de operador. Para tener en cuenta:
1. typeof es un operador, no un método. Aunque frecuentemente usamos typeof() para obtener el tipo de datos de un objeto.
2. Typeof para nulo es objeto (esto se debe a que nulo es una referencia de objeto vacía) y typeof para función es función.
Copie el código de código de la siguiente manera:
alerta (tipo de nulo); //objeto de retorno
demostración de función(){
alerta('demostración');
}
alerta (tipo de demostración); // función de retorno
2. Establecer valores iniciales para variables de objeto de varios tipos de datos.
Tenga en cuenta que si la variable de objeto de tipo Objeto no sabe qué asignar al principio, no utilice var demo={}, es mejor establecerla en nulo;
Copie el código de código de la siguiente manera:
var d2=nulo;
d2={'clave':"mierda"};
var d3='';//Cadena predeterminada
var d4=0; //El valor inicial del tipo de número se establece en 0
var d5=null; //Establece el valor predeterminado inicial para el tipo de objeto
3. La diferencia y los puntos a tener en cuenta entre indefinido y nulo
1. Si usas "==" para comparar, son iguales porque comparan valores.
2. Hay dos formas de distinguirlos (su núcleo es comparar sus tipos de datos)
1) Utilice typeof para distinguirlos
2) Utilice "===" congruente: la comparación es entre el valor y el tipo de datos, y se devolverá verdadero solo si todos son iguales.
Copie el código de código de la siguiente manera:
alerta(indefinido == nulo); //verdadero);
alerta(tipo de indefinido == tipo de nulo //falso);
alerta(indefinido === nulo); //verdadero);
4. Notas sobre booleano
1. La comparación entre verdadero y 1 es la misma, y la comparación entre falso y 0 es la misma (es una comparación "=="), porque la conversión del tipo de datos se implementa internamente, convirtiendo verdadero en 1 y falso a 0. Hay muchos datos dentro de js. La conversión automática de tipos es algo a lo que todos deben prestar atención. Más adelante se mencionarán muchos más. Pero usar "===" no es igual, porque sus tipos de datos no son iguales.
2. Muestre la conversión a booleano. Utilice el método booleano () para mostrar la conversión. A lo que debe prestar atención son a los distintos tipos de datos, cuándo convertir a verdadero y cuándo convertir a falso.
1) Tipo de cadena, siempre que no sea una cadena vacía, se convertirá a verdadero
2) Tipo de número, siempre que no sea 0, incluso un número negativo se convertirá en verdadero
3) El tipo de objeto, siempre que no sea de tipo nulo, se convertirá a verdadero
4) El tipo indefinido se convertirá en falso
No haré una demostración, puedes probarlo tú mismo.
3. (***) La función booleana se llama dentro () de la declaración if().
5. Puntos a tener en cuenta sobre el tipo de número
1. El tipo flotante no puede realizar operaciones precisas.
Copie el código de código de la siguiente manera:
alerta(0.1+0.2);//Regresar 0.3000000000000000004
2. Apoyar operaciones de notación científica.
3. NaN (no es un número)
1) var d=0/0 Nota: No se informará ningún error en js, pero se devolverá NaN.
2) Se puede obtener a través de Number.NaN
3) Cualquier operación entre NaN y cualquier objeto devolverá NaN.
4) isNaN () determina si es NaN
Copie el código de código de la siguiente manera:
alerta(isNaN(NaN));//verdadero
alerta(isNaN(12));//falso
alert(isNaN('123'));//false: porque los números de tipo cadena se pueden convertir automáticamente en números
alert(isNaN('lew'));//verdadero
alert(isNaN(false));//(*)false: debido a que el valor bool se puede convertir en un número, verdadero se convierte en 1, falso se convierte en 0
5) Principio de ejecución interna de isNaN(): Lo mismo se aplica a los objetos. Principio de implementación: el primer ministro llama al método valueOf () del objeto. Si se puede convertir en un número, se juzgará directamente; si no se puede convertir en un número, se llamará nuevamente al método toString (). y luego pruebe el valor de retorno.
valueOf() llama internamente al método toObject(). El principio de ejecución interna de los dos métodos es el siguiente:
Copie el código de código de la siguiente manera:
cuadro var={
//Anula el método toString() del objeto box
toString:función(){
devolver '123';
}
};
alerta(isNaN(cuadro));//falso
alert(box);//123 Internamente alert() también llama primero al valueOf() del objeto y luego llama al método toString().
6) Convertir otros tipos de datos al tipo Número
Contiene tres funciones: Number(): puede convertir todos los tipos de datos; parseInt() y parseFloat() solo convierten cadenas.
Copie el código de código de la siguiente manera:
alerta(Número('123'));//123
alerta(Número('0234'));//234
alerta(Número(verdadero));//1
alerta(Número(nulo));//(**)0
// Excepto lo anterior, todo lo demás devuelve NaN.
alerta(Número(indefinido))//NaN
El principio de implementación interna de Number(): Igual que isNaN(), primero se llama a valueOf() y luego a toString(). . Por tanto, se puede imaginar que el rendimiento es relativamente pobre. . Entonces, siempre que el objeto a transformar sea una cadena, llame a parseInt() o parseFloat() porque no necesitan juzgar el tipo internamente.
Tenga en cuenta al llamar a parseInt() y parseFloat(): la parte de la cadena que comienza desde el primer carácter numérico hasta el número anterior al primer carácter numérico se convierte en un número.
Copie el código de código de la siguiente manera:
alerta(parseInt('123leb'));//123
alerta(parseInt('123leb345'));//123
alerta(parseInt('len234'));//NaN
Cuando el parámetro en parseInt() es de tipo flotante, solo se obtiene la parte entera del número.
Copie el código de código de la siguiente manera:
alerta(parseInt(56.12));//56
6. tipo de cadena
1) (*Importante*) Las cadenas son inmutables en ECMAScript: las cadenas no cambiarán después de su creación.
Para cambiar una variable de cadena a la que se le ha asignado un valor, primero destruya la cadena en la variable y luego complete la variable con una cadena que contenga el nuevo valor.
Copie el código de código de la siguiente manera:
var d='hola';
d=d+' mierda';//Proceso de ejecución: primero asigne un valor a 'hola', luego borre la cadena en d, concatene las cadenas 'hola' y 'mierda', y luego asigne un valor a la variable d. (Por lo tanto, el valor de la cadena no cambiará una vez creada)
2) El método toString() convierte otros tipos de datos al tipo String. Pero si opera con nulo o indefinido, se informará un error.
3) Sin embargo, el método String () también puede lograr el efecto de toString (), pero puede operar en valores nulos e indefinidos.
Principio interno: primero llame a toString () y, si se puede convertir en una cadena, el resultado se devolverá directamente. No, luego juzgue si es nulo o indefinido y luego devuelva "nulo" o "indefinido"
Resumen: si sabe que la variable no puede ser nula o indefinida, utilice toString(), que tiene más rendimiento que String(). Debido a que String() tiene que realizar juicios internos, perjudicará el rendimiento.