일치연산자



 자바스크립트에서는 두가지 종류의 일치연산자가 있다. 간략히 설명하자면 아래와 같다.


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

+ Recent posts