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

댓글

이 블로그의 인기 게시물

Next.js에서 자연스러운 Page Transition 방법

[flutter] Android - Package간 sdk version 등이 맞지 않아 오류가 발생하는 경우

[Windows] Chocolatey upgrade