Lógico ou (||)
var resultado = true || falso;
Semelhante à lógica e às operações, se houver um operando que não seja booleano, lógica ou não necessariamente retorna um booleano; Neste momento, segue as seguintes regras:
□ Se o primeiro operando for um objeto, o primeiro operando será retornado.
□ Se o primeiro operando for avaliado como falso, o segundo operando será retornado.
□ Se ambos os operandos forem objetos, o primeiro operando será retornado.
□ Se ambos os operando forem nulos, retorne nulos
□ Se ambos forem indefinidos, retorne indefinidos.
□ Se ambos forem nan, retorna nan
A diferença entre "===" e "=="
Operador de igualdade (==)
O operador igual converterá implicitamente os valores de operação e os comparará:
Se um valor de operação for um booleano, ele é convertido em um valor numérico antes da comparação
Se um valor de operação for uma string e o outro valor de operação é um valor numérico, a string será convertida em um valor numérico através da função número ()
Se um valor de operação for um objeto e o outro não for, o método valueof () do objeto é chamado e o resultado é comparado de acordo com as regras anteriores
nulo e indefinido são iguais
Se um valor de operação for nan, comparação igual retorna falsa
Se ambos os valores de operação forem objetos, compare se eles apontam para o mesmo objeto. Se ambos os operandos apontarem para o mesmo objeto, o operador igual retornará true, caso contrário, retorne false
Os seguintes são explicados separadamente:
Vamos falar sobre ===, isso é relativamente simples. As regras a seguir são usadas para determinar se os dois valores === são iguais:
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 ==, de acordo com as seguintes regras:
1. Se os dois tipos de valor forem iguais, faça === comparação.
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 é [desigual].
Valor da expressão Valor da expressão
null == UndefinedTruetrue == 1True
"Nan" == nanfalse $ null == 0False
false == 0truenan! = nantue
Em suma, "==" requer apenas valores iguais. "===" requer que o valor e o tipo sejam iguais.
A informação vem da programação avançada JavaScript, classificada e atualizada posteriormente