다른 언어와 다르게 자바스크립트에는 비교 연산자로 == 과 === 두 가지가 있는데 둘은 수행하는 역할이 다르다.
== 동등 연산자(Equal Operator)
비교하려는 값이 타입이 다르다면 같은 타입으로 변경하여 비교를 한다.
쉽게 말하자면 자바스크립트가 어떻게든 둘을 같은 값으로 보기 위해 노력한다고 할 수 있다. (귀여운 js...)
console.log('1' == 1); //true
console.log(true == '1'); //true
console.log(true == 1); //true
console.log(false == 0); //true
console.log('' == 0); //true
console.log([] == 0); //true
위의 경우 전부 true를 반환한다.
=== 동치 연산자(Strict Equal Operator)
두 비교 대상 데이터를 타입을 변환시키지 않고 일치 여부를 엄격하게 검사한다.
console.log('1' === 1); //false
console.log(true === '1'); //false
console.log(true === 1); //false
console.log(false === 0); //false
console.log('' === 0); //false
console.log([] === 0); //false
이번엔 모두 false를 반환한다.
코딩을 할 때 혼란을 줄이고 읽기 쉬운 코드를 작성하려면 두 값을 엄격하게 검사하는 동치 연산자를 이용하는 게 도움이 된다.
'JavaScript' 카테고리의 다른 글
[JavaScript] 이벤트 루프: 자바스크립트는 싱글 스레드라면서 왜 비동기 방식인가요? (0) | 2021.12.10 |
---|---|
[JavaScript] 자바스크립트 소수점 계산시 오류 발생???? (0) | 2021.12.10 |
[JavaScript] 익명 함수, 화살표 함수에 대해(함수 선언식과 함수 표현식) (0) | 2021.12.10 |
[JavaScript] 읽기쉬운 코드를 위해서 const를 사용하자: const, let, var에 대해 (0) | 2021.12.10 |
[JavaScript] 펼침 연산자 효과적으로 사용하기 (0) | 2021.11.30 |