JavaScript conversões implícitas em igualdade com uma corda
-
16-09-2019 - |
Pergunta
Como o JavaScript se comportar para as comparações true == "true"
e (0 == "0")
?
Solução
Tipo de coerção operadores conscientes (== e! =) Pode produzir alguns resultados estranhas:
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true
' \t\r\n ' == 0 // true
Os === e! == operadores de igualdade rigorosas são sempre preferido .
Outras dicas
Ao usar == ou! = Se os tipos das duas expressões são diferentes, ele irá tentar convertê-los em seqüência, número ou booleano etc
No entanto, você pode usar a comparação de identidade === ou! == onde nenhuma conversão de tipo é feito, e os tipos deve ser o mesmo a ser considerado igual.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow