'=='은 동등연산자(Equal Operator) 로써, 의미가 비슷하면 true를 출력한다. 여기서 의미가 비슷하다는 것은 '실질적인 값이 같다'는 것이다.
아래의 세 가지 예시를 보자.
let a = 123
이고let b = '123'
이라면a == b
는true
가 출력된다.
null == undefined
을 입력한다면,null
와undefined
는 모두 '비어있다'는 의미를 가지므로 이것 또한true
가 출력된다.
true == 1
을 입력한다면,true
가 출력된다. 1은 true, 0은 false로 나타내기 때문에 실질적인 의미가 같다고 보는 것이다.
그렇다면 '==' 대신 '==='을 쓰면 어떻게 될까?
'==='은 일치연산자(Strict Equal Operator) 로써, 의미가 정확하게 똑같을 때 true를 출력한다. 여기서 '똑같다'는 것은 '값과 자료형이 모두 일치한다'는 것이다.
위에 두 예시는 모두 실질적 값은 똑같으나 자료형이 다른 경우에 속한다. 따라서 세가지 예시를 '==='으로 바꾼다면 두 경우 모두 false가 출력될 것이다.
let a = 123
이고let b = '123'
이라면 두 변수는 다른 자료형을 가지므로a === b
는false
가 출력된다.
null === undefined
을 입력한다면,null
와undefined
는 모두 '비어있다'는 의미를 가지지만, 두 변수는 서로 다른 자료형이므로false
가 출력된다.
true === 1
을 입력한다면,false
가 출력된다. 1과 true는 서로 다른 자료형을 가지기 때문이다.