==와 ===의 차이

0

Javascript

목록 보기
3/13
post-thumbnail

== 연산자 (comparison operator)

== 연산자는 피연산자들을 모두 같은 자료형으로 형 변환한 뒤에 비교를 진행합니다. 그럼 Number타입과 String타입을 비교할 때는 모두 Number로 변환한 뒤 비교할까요? 아니면 모두 String형으로 변환한 뒤 비교할까요? 이럴 경우는 Number 타입으로 변환하는 것이 우선입니다. 만약‘abc’와 같은 숫자값이 없는 스트링 값들은 NaN(Not a number)값으로 변환이 된 후 비교가 진행됩니다. 참고로 빈 물자열 ‘’은 숫자와 비교하게 되면 숫자 0으로 변환됩니다.

왜 == 연산자를 쓰는가

같은 타입이 아니더라도 값을 비교해야 할 때 쓰입니다. 예를 들어 사용자에게 어떤 숫자값을 입력받고 그 값을 특정 숫자들과 비교할 때, 입력받은 숫자는 String형인 경우가 있습니다. 이럴 때 ==연산자를 써야 의도했던 대로 비교가 이루어집니다.

===연산자 (strict equality comparison operator)

=== 연산자는 같은 타입이 아닌 두 피연산자에 대해서는 항상 false를 반환합니다. 자료형이 같은 피연산자들에 한해서 값을 비교합니다. 따라서 ‘2’와 숫자 2===연산자를 이용해서 비교하면 false가 나옵니다. 참고로 NaN값의 Number타입 두 개를 ===연산자를 이용해서 비교하게 되면 false를 반환합니다. 조금 더 정밀하고 안전한 비교를 위해서는 ==연산자보다 ===연산자를 쓰는것이 권장됩니다.

0개의 댓글