일치연산자
자바스크립트에서는 두가지 종류의 일치연산자가 있다. 간략히 설명하자면 아래와 같다.
1. ==, !=
- 자동형변환이 이루어져서 값만 비교
- 자료형이 달라도 값이 같으면 true
2. ===, !==
- 자료형과 값 모두를 비교
- 자료형과 값이 모두 같아야 true
1번은 자료형이 다르고 같은 값이면 자동으로 형변환이 이루어 진다.
1 2 3 4 5 6 | <script> alert('' == false); //1 alert('' == 0); //2 alert(0 == false); //3 alert('273' == 273);//4 </script> | cs |
위의 코드를 실행하면 모두 true가 출력된다.
각각의 경우를 살펴보자.
1번은 문자열 타입과 불 타입 이라서 자료형이 다르지만, 자동형변환으로 false == false가 되어 true가 된다.
2번은 문자열과 숫자 이지만 둘다 불 타입은 false라서 true가 된다.
3번은 숫자와 불형이지만 숫자 0은 불 타입으로 false이기 때문에 false == false라서 true가 된다.
4번은 숫자 273이 하나는 문자열이고 하나는 숫자 이지만 자료형이 자동으로 변환되어 273이라는 값만 비교하여 결과는 true가 나온다.
이렇게 == 연산자를 쓸경우 자료형을 엄격하게 검사하지 않아 원하지 않는 결과가 나올 수도 있다.
2번은 값이 같아도 자료형이 다르면 다른 값으로 판단한다. 즉 자료형검사를 엄격하게 한다.
1 2 3 4 5 6 | <script> alert('' === false); //1 alert('' === 0); //2 alert(0 === false); //3 alert('273' === 273);//4 </script> | cs |
비교하는 피연산자의 값 뿐만 아니라 자료형까지 비교하므로 위의 코드는 모두 false가 출력된다.
'개발 > JavaScript' 카테고리의 다른 글
[JavaScript] 변수와 상수 (0) | 2018.06.19 |
---|---|
[JavaScript] 템플릿 문자열 (0) | 2018.06.17 |
[JavaScript] 불 자료형 변환 (0) | 2018.06.14 |
[JavaScript] NaN (0) | 2018.06.14 |
[JavaScript] 연산자와 자료형변환 (1) | 2018.06.14 |