자바스크립트의 경우 다른 언어와 달리 형변환을 자체적으로 하는 기능이 있다.

파이썬을 먼저 공부하고 자바스크립트를 공부하다보니 헷갈리는 부분이었는데...

 

예를 들면, 파이썬에서 아래와 같은 출력문을 실행하면 서로 자료형이 다르기 때문에 TypeError가 발생한다.

print('1' + 2)

 그러나, 자바스크립트에서 아래와 같은 출력문을 실행하면 문자열 '12'가 출력된다. 자바스크립트가 알아서 자료형을 변환해주기 때문이다.

console.log('1' + 2);

 

어떻게 보면 편리할 수도 있으나 코드가 복잡할 때는 어디가 잘못되었는지 파악하기 어려울 것 같다는 생각도 든다.

 

이러한 이유에서인지 자바스크립트에서 값이 같은지 확인하는 방법은 두가지가 있는데 바로 '동등'과 '일치' 이다.

console.log('1' === 1);
// 출력값은 false

console.log('1' == 1);
// 출력값은 true

===는 양 값이 완전히 일치하는지 비교한다. 위 예시에서 문자열 1과 정수 1은 완벽하게 일치하지 않으므로 출력값은 false가 된다.

 

반면, ==은 양 값이 동등한 관계에 있는지 비교한다. 문자열 1과 정수 1은 동등하다고 보기 때문에 (자바스크립트가 알아서 형변환을 해주기 떄문에..) 출력값은 true가 된다. 

+ Recent posts