JavaScript 기본 상식 #2
Equality operator(동치 연산자, '==', '===')를 이해하기 값을 비교할 때, 사용하는 연산자로서, 어느 때, '=='와 '==='를 사용해야 하는지를 혼동하는 경우가 많다. 3 == '3' true '3' == new String('3') true 1 == true true null == undefined true 단! 아래 경우는 그렇지 않다. (주의!) 'true' == true fales 2 == true false null == true false 일반적으로 그냥 true인지 보기 위한 비교, 예를 들면, var a = 3; var b = '3'; a == b true 와 같이 값이 최소한 있냐는 관점에서 비교할 때는 문제가 되지 않는다. 하지만, 정확하게 그 값이 있는지 확인할 목적이라면, 이렇게 하면, 큰 낭패를 볼 수 있다. 예를 들면, 위 예에서, 다음을 입력하면 전혀 다른 결과를 가져오기 때문이다. var a = 3; var b = '3'; a += 1 b += 1 a == b false 그래서, 보통 값이 명확하고 형변환과 무관할 때는 '=='를 사용하고, 그렇지 않은 경우는 '==='를 사용하는 것이 좋다. var a = 3; var b = '3'; var c = '3'; a == b true a === b false a == '3' true a == 3 true a === '3' false a === 3 true b == c true b === c true b == 3 true b == '3' true b === '3' true