자바스크립트는 다른 언어와는 다른 점중에 하나는 바로 동등연산자인 ==이다.


자바에서 1=="1"의 결과는 무엇이라고 생각하는가? 답은 false이다. 하지만 자바스크립트는 어떨까? 답은 true이다


왜 그러하다고 생각하는가? 이것은 자바스크립트에서는 동등연산자의 경우 느슨한 비교를 하는 것이라고 생각할 수 있다.


우선 화면은 통해서 살펴보겠다.


첫번째는 number형인 숫자와 string 형인 문자열의 비교이다. 정답은?

두번째는 null 형과 undefined형의 비교이다. 정답은?

첫번째의 정답은 true이다.

두번째의 정답은 true이다.

과연 이것이 기존의 생각하는 동등연산자의 결과과 같은가? 아마 다를것이다. 그 이유는 동등연산자(==)의 경우 데이터타입을 확인하지 않기 때문이다. 이것에 관련된 연산의 결과는 아래의 표를 참조하자.



그렇다면 어떻게 연산을 해야할까? 그 답은 일치연산자인 (===)에 있다. 이 연산자는 데이터타입까지 비교를 한 뒤 결과값을 반환하여 준다.


즉 내용물과 데이터 타입이 같아야 한다는 것이다. 아까와 같은 연산을 일치연산자(===)를 통해서 해보자.


아까와 같은 코드이다. 대신 연산자를 일치연산자로 대체하였다. 결과는 어떨까?

 아까는 true였던 값들이 false가 된것을 확인할 수 있다.

즉, 자바스크립트에서는 동등연산자보다 일치연산자를 사용하는 것을 권장한다. 안그렇다면 위의 표를 다 외워서 그때그때 사용해야할 것이다.

 


Posted by 구레이더