자바스크립트에서는 특이하게도 비교연산자가 == 이외에도 ===도 존재한다. 다른 비교 연산자들, 예를 들어 !=도 마찬가지로 !==의 방식으로 사용되어지는데, 이는 자바스크립트의 특이한 비교 방식때문에 생겨난 것 같다.
자바스크립트는 == 을 사용할 경우 그 값만은 비교한다. 이게 무슨 말이냐면, string과 number과 같은 타입의 구분을 두지 않는다는 것이다.
if(1 == "1") {
alert('true');
} else {
alert('false');
위의 코드를 자바스크립트로 실행해본다면 true로 작동한다. 즉 자바스크립트에서 ==을 사용한다면 문자열 1과 숫자 1을 같은 값으로 비교할 수 있다는 것.
이와는 다르게 ===같은 경우는 타입의 차이점까지 비교해서 판단한다. 아래의 코드를 자바스크립트로 실행해보자.
if(1 === "1") {
alert('true');
} else {
alert('false');
결과값으로 false가 나온다는 것을 알 수 있다. 비교하는 둘 간의 타입이 다르기 때문이다. 같은 비교연산자이긴 하지만 이런 타입비교 때문에 연산자를 세 개 사용하는 경우에 strict(엄격한)을 붙여서 엄격한 비교연산자라고 한다. 실제 업무를 해보다보니, 확실히 엄격한 비교연산자를 사용하는게 더 안전한 코드를 사용할 수 있다는 확신이 든다.
'Javascript' 카테고리의 다른 글
Javascript(자바스크립트) document에서 바로 form태그 돔 컨트롤 하는 방법 (0) | 2020.08.03 |
---|---|
자바스크립트(Javascript) 호이스팅(hoisting)이란? (0) | 2020.06.18 |
자바스크립트 오브젝트 반복문으로 다루기 (0) | 2020.05.07 |
Javascript 내장 함수 replace() (0) | 2020.04.29 |
전화번호에 하이픈 추가(정규식) (0) | 2020.01.22 |