두 피연산자가 동일한 유형이 아닌 경우 JavaScript는 피연산자를 변환 한 다음 엄격한 비교를 적용합니다. 피연산자가 숫자이거나 부울이면 피연산자는 가능한 경우 숫자로 변환됩니다. 그렇지 않으면 피연산자 중 하나가 문자열이면 다른 피연산자는 가능한 경우 문자열로 변환됩니다.
이를 염두에두고 "true" == true
다음과 같이 평가 합니다.
- 같은 유형입니까? 아니
- 피연산자가 숫자 또는 부울입니까? 예
- 둘 다 숫자로 변환 할 수 있습니까? 아니요 (
isNaN(Number("true")) // true
) - 피연산자가 문자열입니까? 예
- 다른 피연산자를 문자열로 변환 할 수 있습니까? 예 (
String(true) === "true" // true
)
로 평가되어야 하는 문자열 "true"
and로 끝났지 만 JavaScript는 false를 표시합니다."true"
true
내가 무엇을 놓쳤습니까?