비교하려는 값의 자료형이 다르면 자바스크립트는 이 값들을 숫자형으로 바꾼다.
alert('2' > 1); // true, 문자열 '2'가 숫자 2로 변환된 후 비교가 진행된다. alert('01' == 1); // true, 문자열 '01'이 숫자 1로 변환된 후 비교가 진행된다.
동시에 일어나지 않을 법한 두 상황이 동시에 일어나는 경우가 있다.
let a = 0; alert(Boolean(a)); // false let b = "0"; alert(Boolean(b)); // true alert(a == b); // true!
- 두 값(a, b)를 비교하면
true
가 반환된다.- 값을 논리 평가한 후 비교하면 하나는
true
, 하나는false
가 반환된다.동등 비교 연산자
==
는 피연산자를 숫자형으로 바꾸지만Boolean
메서드를 사용한 명시적 변환에는 다른 규칙이 사용된다.