우선 == 평등은 평등, === 동일성은 평등입니다.
==, 양쪽의 값 유형이 다른 경우에는 유형 변환을 먼저 수행한 후 비교해야 합니다.
===, 유형 변환이 수행되지 않으며 서로 다른 유형이 동일하면 안 됩니다.
각각 설명하면 다음과 같습니다.
먼저 ===에 대해 이야기해 보겠습니다. 비교적 간단합니다. 두 값이 === 같은지 여부를 결정하는 데 다음 규칙이 사용됩니다.
1. 유형이 다를 경우 [같지 않음]
2. 둘 다 숫자 값이고 동일한 값인 경우 [같음](!Exception)은 둘 중 하나라도 NaN이면 [같지 않음]입니다. (값이 NaN인지 확인하려면 isNaN()만 사용하면 됩니다.)
3. 둘 다 문자열이고 각 위치의 문자가 동일하면 [같음]이고, 그렇지 않으면 [같지 않음]입니다.
4. 두 값이 모두 참이거나, 둘 다 거짓이면 [같음]입니다.
5. 두 값이 모두 동일한 개체나 함수를 참조하는 경우 [같음]이고, 그렇지 않으면 [같지 않음]입니다.
6. 두 값이 모두 null이거나 둘 다 정의되지 않은 경우 [같음]입니다.
다음 규칙에 따라 ==에 대해 이야기해 보겠습니다.
1. 두 값 유형이 동일한 경우 === 비교를 수행합니다.
2. 두 값 유형이 다른 경우에는 동일할 수 있습니다. 다음 규칙에 따라 유형 변환 및 비교를 수행합니다.
a. 하나는 null이고 다른 하나는 정의되지 않은 경우 [같음]입니다.
b. 하나는 문자열이고 다른 하나는 숫자 값인 경우 문자열을 숫자 값으로 변환한 후 비교합니다.
c. 값이 true인 경우