[JavaScript] 비교 ('=='와 '==='의 차이)
비교 ('=='와 '==='의 차이)
1. ==
동등 연산자로 좌항과 우항을 비교해서 서로 값이 같다면 true 다르다면 false가 된다. '='가 두개인 것을 주의하자. '='가 하나인 것은 대입 연산자로 좌항의 값을 우항의 변수에 대입할 때 사용하는 것으로 의미가 완전히 다르다.
alert(1==2)
//false
alert(1==1)
//true
alert(
"one"
==
"two"
)
//false
alert(
"one"
==
"one"
)
//true
2. ===
일치 연산자로 === 좌항과 우항이 '정확'하게 같을 때 true 다르면 false가 된다. 여기서 정확하다는 말의 의미에 집중하자. 아래 예를보자.
alert(1==
'1'
);
//true
alert(1===
'1'
);
//false
위의 결과는 이상하다. '==='는 숫자 1과 문자 1을 다르게 인식한다. 반면에 '=='는 양쪽의 값을 같다고 판단한다. 바로 이것이 '정확'의 의미다. 즉 ===는 서로 같은 수를 표현하고 있더라도 데이터 형이 같은 경우에만 같다고 판단하기 때문이다. 결론부터 말하면 == 연산자 대신 === 연산자를 쓰는 것을 강력하게 권한다. 몇가지 사례를 더 살펴보자.
alert(
null
== undefined);
//true
alert(
null
=== undefined);
//false
alert(
true
== 1);
//true
alert(
true
=== 1);
//false
alert(
true
==
'1'
);
//true
alert(
true
===
'1'
);
//false
alert(0 === -0);
//true
alert(NaN === NaN);
//false
null과 undefined는 값이 없다는 의미의 데이터 형이다. null은 값이 없음을 명시적으로 표시한 것이고,
undefined는 그냥 값이 없는 상태라고 생각하자.
NaN은 0/0과 같은 연산의 결과로 만들어지는 특수한 데이터 형인데 숫자가 아니라는 뜻이다.
출처: https://devbox.tistory.com/entry/비교-와-의-차이-1?category=574556 [장인개발자를 꿈꾸는 :: 기록하는 공간]
'Javascript > JavaScript' 카테고리의 다른 글
[JavaScript] 콜백 (0) | 2020.07.07 |
---|---|
[JavaScript] 값으로서의 함수 (0) | 2020.07.07 |
[JavaScript] 객체 (0) | 2020.07.07 |
[JavaScript] 배열 (0) | 2020.07.07 |
[JavaScript] 함수 정의하는 방법 (0) | 2020.07.07 |
자바스크립트 연산자 및 우선순위 정리 (0) | 2019.12.30 |
[JavaScript] 자바스크립트 특수문자 인코딩 (0) | 2019.04.23 |
자바스크립트 정규표현식 이용한 replace html(<,>,", ' ,\n) 특수문자로 변환 (0) | 2019.04.23 |