1. El papel de JavaScript "=="
1. Cuando el contenido de == en ambos lados hay cadenas, compare si el contenido de la cadena es igual.
2. Cuando los contenidos en ambos lados de == son números, compare si los tamaños de los números son iguales.
3. Cuando los contenidos en ambos lados de == son objetos o atributos de función de objetos, compare si las direcciones de memoria son iguales.
2. La diferencia entre == y ===
== Utilizado para la comparación general, === Usado para una comparación estricta, == Puede convertir el tipo de datos durante la comparación, === Comparación estricta y returación FLASE siempre que los tipos no coincidan.
Dar un ejemplo:
<script type = "text/javaScript"> alert ("/"/"== El resultado true es:"+("" == true)); alert ("/"/"=== El resultado verdadero es:"+("" == true)); alerta ("/"/"=== El resultado verdadero es: "+(" "==)); alerta ("/"/" ==== "+(" "==)); Alert ("/"/" ==== "+(" "===)); </script>"1" == Los tipos verdaderos son diferentes, "==" La conversión de tipo se realizará primero, y verdadero a 1 se convierte, es decir, "1" == 1; En este momento, los tipos siguen siendo diferentes, continúan realizando la conversión de tipo y se convierte "1", es decir, 1 == 1; En este momento, "==" los tipos en ambos lados de la izquierda y la derecha son numéricos, ¡lo cual es relativamente exitoso!
"1" === Verdadero El lado izquierdo es el tipo de caracteres, el lado derecho es de tipo bool, los lados izquierdo y derecho son diferentes, el resultado es falso;
"1" === 1 El lado izquierdo es un tipo de carácter, el lado derecho es un tipo numérico int y los lados izquierdo y derecho son diferentes, y el resultado es falso;
Resultados de ejecución:
Resumir:
La diferencia entre == y ==: "==" Solo los valores deben ser iguales; "===" Los valores y tipos deben ser iguales.
Permítanme explicar en detalle la diferencia entre tres signos iguales y dos signos iguales en JavaScript.
== La igualdad es equivalente, === La identidad es la igualdad.
==, cuando las dos partes tienen diferentes tipos de valores, la conversión de tipo debe realizarse primero y luego compararse.
==, no se realiza una conversión de tipo, diferentes tipos deben ser diferentes.
Los siguientes se explican por separado:
Hablemos de ===, esto es relativamente simple.
Las siguientes reglas se utilizan para determinar si los dos valores === son iguales:
1. Si los tipos son diferentes, son [desiguales]
2. Si ambos son valores numéricos y son el mismo valor, entonces [igual]; (! Excepción) es, si al menos uno de ellos es nan, entonces [no es igual]. (Para determinar si un valor es nan, solo puede usar isnan () para juzgar)
3. Si ambas son cadenas y los caracteres en cada posición son los mismos, entonces [igualdad]; de lo contrario [no igual].
4. Si ambos valores son verdaderos, o ambos son falsos, entonces [igual].
5. Si ambos valores se refieren al mismo objeto o función, entonces [Igualdad]; de lo contrario [no igual].
6. Si ambos valores son nulos, o ambos indefinidos, entonces [igual].
Hablemos de ==, de acuerdo con las siguientes reglas:
1. Si los dos tipos de valor son los mismos, make === comparación.
2. Si los dos tipos de valor son diferentes, pueden ser iguales. La conversión de tipo se realiza de acuerdo con las siguientes reglas y luego se compara:
a. Si uno es nulo y el otro está indefinido, entonces [igual].
b. Si uno es una cadena y el otro es un valor numérico, convierta la cadena en un valor numérico y luego compárela.
do. Si algún valor es verdadero, conviértalo en 1 y compare; Si algún valor es falso, conviértalo a 0 y compare.
d. Si uno es un objeto y el otro es un numérico o una cadena, convierta el objeto en un valor del tipo base y luego compárelo. Convierta un objeto a un tipo básico y use su método ToString o ValueOf. La clase incorporada JS Core intentará valorar antes de ToString; La excepción es la fecha, que utiliza la conversión de tostración. Objeto núcleo no js,
Lingshuo (no entiendo mucho)
mi. Cualquier otra combinación es [desigual].
Por ejemplo:
"1" == Verdadero
Si los tipos son diferentes, verdadero primero se convertirá en el valor 1, y ahora se convierte en "1" == 1, y luego se convierte en "1" a 1, y compare 1 == 1, que es igual.
= Operador de asignación
== igual a
=== estrictamente igual a
ejemplo:
var a = 3;
var b = "3";
a == b Devuelve verdadero
a === b Devuelve falso
Porque los tipos de A y B son diferentes
=== Se usa para hacer juicios de comparación estrictos