🌿 조건 필터링

비교 연산자

비교 연산자란, 이름에서도 알 수 있듯 자바스크립트의 데이터를 서로 비교해주는 연산자 를 뜻합니다. 비교연산자에는 두가지의 연산자가 있지만, 실무에서는 엄격한 비교연산자만을 사용 합니다.

느슨한 비교연산자

데이터 값은 비교하지만, 타입은 비교하지 않습니다.

1 == '1'
// true

❗️ 문자열 1 과 숫자 1은 다릅니다. 실무에서 문자열 1과 숫자 1은 엄격히 구분되어야 합니다. 만일 이런 실수가 결제와 관련된 로직에서 일어났다면, 결과가 상당히 치명적으로 돌아오게 됩니다. 따라서 여러분들은 실무에서 느슨한 비교연산자의 사용을 지양하시길 바랍니다.

엄격한 비교 연산자

서로 완전히 같지 않다면 false를 반환합니다.

1 === '1'
// false

그런데 엄격한 비교연산자는 어떻게 값 뿐만 아니라 타입까지 비교할 수 있을까요?

사실 엄격한 비교연산자 는 값과 타입을 비교하는 것이 아닌, 데이터의 메모리 주소를 비교 해 두 데이터가 완벽히 일치하는지 판단합니다.

따라서 두 데이터가 눈으로 보기엔 완벽히 일치해컴퓨터 내부에서 저장된 메모리 주소가 다르다면 두 데이터는 다른 데이터가 되는 것 입니다.

이런 과정을 완벽히 이해하고 엄격한 비교 연산자를 “잘” 사용하려면, 자바스크립트의 원시 데이터 타입참조 데이터 타입 에 대해 아는 것이 중요합니다.

원시타입과 참조 타입

사실 자바스크립트의 데이터타입은 크게 두가지 타입으로 나뉘게 됩니다. 바로 원시타입( Primitive type )참조타입( Refrence type ) 입니다.

원시타입