Em poucas palavras: == Converta o tipo primeiro e depois compare -o, === JUGE O TIPO PRIMEIRO, se não for o mesmo tipo, ele é diretamente falso.
=== significa que os dois lados da comparação devem ser absolutamente iguais
alerta (0 == ""); // Truealert (0 == false); // Truealert ("" == false); // verdadeiro alerta (0 === ""); // falsEalSealert (0 === false); // FalsEalSealert ("" === FALSE); // falseVamos falar sobre ===, isso é relativamente simples, as regras de comparação específicas são as seguintes:
1. Se os tipos são diferentes, são [desiguais]
2. Se ambos são valores numéricos e são o mesmo valor, então [igual]; (! Exceção) é, se pelo menos um deles for nan, então [não é igual]. (Para determinar se um valor é nan, você só pode usar isnan () para julgar)
3. Se ambos são cordas e os caracteres em cada posição são os mesmos, então [igualdade]; caso contrário [não é igual].
4. Se ambos os valores forem verdadeiros ou ambos forem falsos, então [igual].
5. Se ambos os valores se referirem ao mesmo objeto ou função, então [igualdade]; caso contrário [não é igual].
6. Se ambos os valores forem nulos ou ambos indefinidos, então [igual].
Vamos falar sobre ==, as regras de comparação específicas são as seguintes:
1. Se os dois tipos de valor forem iguais, execute === Comparação e as regras de comparação são as mesmas que acima.
2. Se os dois tipos de valor forem diferentes, eles podem ser iguais. A conversão de tipo é realizada de acordo com as seguintes regras e depois comparada:
um. Se um é nulo e o outro é indefinido, então [igual].
b. Se um for uma string e o outro for um valor numérico, converta a sequência em um valor numérico e compare -o.
c. Se algum valor for verdadeiro, converta -o em 1 e compare -o; Se algum valor for falso, converta -o para 0 e compare -o.
d. Se um é um objeto e o outro for um ou string numérico, converta o objeto em um valor do tipo base e compare -o. Converta um objeto em um tipo básico e use seu método ToString ou ValueOf. A classe interna do núcleo JS tentará valorizar antes da tostragem; A exceção é a data, que usa conversão de tostramento. Objeto principal não JS, digamos (é mais problemático, eu não entendo muito)
e. Qualquer outra combinação (matriz, etc.), são [desiguais].