Dlaczego „true” == true pokazuje false w JavaScript?
MDC opisuje==
operator w następujący sposób:
Jeśli dwa operandy nie są tego samego typu, JavaScript konwertuje operandy, a następnie stosuje ścisłe porównanie. Jeśli którykolwiek operand jest liczbą lub logiczną, operandy są konwertowane na liczby, jeśli to możliwe; w przeciwnym razie, jeśli którykolwiek operand jest łańcuchem znaków, drugi operand jest konwertowany na łańcuch, jeśli to możliwe.
Mając to na uwadze, oceniłbym to"true" == true
następująco:
isNaN(Number("true")) // true
)Czy operand jest ciągiem?takCzy możemy przekonwertować drugi operand na ciąg?tak (String(true) === "true" // true
)Skończyłem z sznurkami"true"
i"true"
, które powinny ocenićtrue
, ale JavaScript pokazuje fałszywe.
Co przegapiłem?